python - 遇到循环计算数字中位数的问题
问题描述
我的任务要求我接受输入,确定所述输入中有多少位数字,然后将其吐出。我们不允许使用字符串转换来确定输入的长度。我已经设法让它正常工作。我的问题是我应该让它循环重复,直到到达哨兵。到目前为止,这是我的代码。
print("This program determines the number of digits in a number.")
print("Enter a number, or 0 to quit.")
count = 0
num = 1
final = 0
num = int(input("Enter a number: "))
while num != 0:
num = num //10
count += 1
print("There are", count, "digits in", num)
我似乎也无法正确打印输入整数,但这可能只是我的无知。我已经取消了循环它的尝试,因为它们似乎都更加破坏了代码。欢迎任何帮助,甚至批评!先感谢您!
解决方案
正确打印输入整数的问题在于,您首先将其保存在 num 变量中,然后在您的 while 循环中不断更改它。所以原始输入当然会丢失,最后它总是打印 0,在 while 循环结束后以 num 结束。
您可以通过将输入值保存到另一个变量来轻松修复它,您不会在循环中触及该变量。
print("This program determines the number of digits in a number.")
print("Enter a number, or 0 to quit.")
count = 0
num = int(input("Enter a number: "))
numcopy = num
while numcopy != 0:
numcopy = numcopy // 10
count += 1
print("There are", count, "digits in", num)
推荐阅读
- react-native - Expo 41 + @stripe/react-native:找不到 package.json
- laravel - Laravel 属于通过
- python - 在 Django 模型中格式化
- java - 无法实现字符串输出
- powerbi - 尽管模型有关系,但数据分布未显示在 power bi 中
- python - Python,用户名和密码,3 次尝试
- python - 在 VSCode 中导入 flask_store
- python - 计算多个文本文件中单词列表的出现次数
- node.js - TypeError:resolve.resolve 不是函数
- python - ValueError:int() 的无效文字,基数为 10:Python/IndexError 中的“”:列表索引超出范围