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

标签 python numbers

我创建了一个函数来检查数字是否有 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 != 3digit != 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/

相关文章:

c# - 用C#生成完全随机的偶数

assembly - 汇编器64b师

python - 如何增加最大查询时间?

python - 为什么当我激活 virtualenv 时我的提示符没有改变?

python - 如何根据条件替换数据框的值

python - pySpark:如何在数据框中的 arrayType 列中获取 structType 中的所有元素名称?

clang - 糟糕的 rand() 实现

javascript - 将数字转换为字母

php - Sr.No 在 PHP MYSQL 中无法正常运行

python - 从字符串中提取数值并保存到数据框时出现问题