首页 > 解决方案 > 用函数查找整数中 0 和 5 的数量

问题描述

我正在从一个网站学习,该网站为我提供了一个代码,该代码应该找到字符串中 0 或 5 的位数。

这是代码。

def num_zero_and_five_digits(n):
    count = 0
    while n:
        digit = n % 10
        if digit == 0 or digit == 5:
            count = count + 1
        n = n / 10
    print(count)

我追溯它,它应该可以工作,但是当我运行它时,5 个工作,50 个工作,但 505 只返回 1 而不是 3。

它应该取数字,找出数字的模数是 5 还是 0(因此最后一个数字是 5 或 0,因为例如 505%10=5),如果是,则将计数加 1。然后重复循环。

我已经移动了计数,但我无法弄清楚代码有什么问题。

标签: pythonfunctionloops

解决方案


尝试使用字符串而不是整数,因为 505 除以 10 是 50.5(0 不能是整数的第一位)。

试试这个代码:

def num_zero_and_five(n):
    count = 0
    string_number = str(n)
    for char in string_number:
        if char == '0' or char == '5':
            count += 1
    print(count)


推荐阅读