我创建了一个函数来检查数字是否有 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')
关于python - 检查一个数字是否只有 2 个数字的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22251707/