📜  程序检查N是否为正二十进制数字(1)

📅  最后修改于: 2023-12-03 14:56:36.865000             🧑  作者: Mango

程序检查N是否为正二十进制数字

二十进制是一种使用20个不同数字(0-9和A-J)进行计数的进制系统。在编程中,有时需要检查一个数是否为正二十进制数字,本篇介绍如何实现这个功能。

实现思路
  1. 首先将该数字转换为字符串
  2. 判断字符串中是否只包含数字0-9和字母A-J
  3. 如果是正二十进制数字,则返回True,否则返回False
实现代码
def is_positive_base_20_number(n):
    """
    检查一个数是否为正二十进制数字
    :param n: 待检查的数
    :return: True:是;False:否
    """
    if not isinstance(n, int) and not isinstance(n, str):
        # 判断输入是否为整数或字符串类型
        return False
    
    if isinstance(n, int):
        # 将整数转换为字符串
        n_str = str(n)
    else:
        n_str = n
    
    # 判断字符串中是否只包含数字0-9和字母A-J
    for c in n_str:
        if c not in '0123456789ABCDEFGHIJ':
            return False
    
    return True
测试样例
assert is_positive_base_20_number(1234) == False
assert is_positive_base_20_number('1A2B3C') == True
assert is_positive_base_20_number('ZXY123') == False
assert is_positive_base_20_number(150) == False
assert is_positive_base_20_number('') == False