Skip to main content
 首页 » 编程设计

python之检查一个数字是否只有 2 个数字的组合

2025年05月04日9lexus

我创建了一个函数来检查数字是否有 3 或 5 以外的任何其他数字,返回 false。

def isDecent(n): 
    digits = list(map(int, str(n))) 
    for digit in digits: 
        if digit != 3 or digit != 5: return False 
    return True 
 
print(isDecent(5553334)) 

但不幸的是它不起作用!我能知道问题所在吗?

请您参考如下方法:

digit != 3 或 digit != 5 总是正确的。所以它总是会返回 False。

将or改为and。

或者,检查为

if digit not in (3, 5): 

事实上,我们不需要将字符转换为整数来检查是否相等,您可以这样做:

def isDecent(n): 
    digits = str(n) 
    return all(digit in ("3", "5") for digit in digits) 

甚至 digit in "35"...但我认为这样的可读性较差。

另一种选择是使用集合:

def isDecent(n): 
    return set(str(n)).issubset('35')