python - 用函数查找整数中 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。然后重复循环。
我已经移动了计数,但我无法弄清楚代码有什么问题。
解决方案
尝试使用字符串而不是整数,因为 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)
推荐阅读
- python-3.x - 在用户控制的目录中生成 python 字节码缓存
- java - 使用 Java JSoup 和 Selenium 抓取完整的动态 HTML 内容
- unity3d - 如何检查刚体是否在移动?
- c - 在 C 中第二次执行函数时如何将 printf 打印到下一行?
- javascript - 表单验证后弹出Javascript激活
- azure - B2C - 自定义流程
- android - NestedScrollView 不显示所有内容
- css - (scss, css) 过渡,动画,不工作
- javascript - 用于匹配包含 URL 的字符串中的字母数字的正则表达式
- php - Laravel Eloquent COUNT(*) NO Result GroupBy()