我创建了一个函数来检查数字是否有 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')
