You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python整数位数统计程序问题:0的位数错误及单复数输出修正

整数位数计算程序的问题解答

问题1:输入“0”时位数为0的原因

你的代码逻辑是靠循环把数字反复除以10,每除一次计数加1,直到数字变成0才停止循环。但输入0的时候,初始的num就是0,循环条件num != 0直接不成立,循环根本没执行,计数变量count始终保持初始值0,所以输出了0位数——但实际上0应该被算作1位数。

问题2:根据位数输出单数/复数形式

加个条件判断就能实现:等算出正确的位数后,若位数是1则输出digit,其他情况输出digits。

修正后的完整代码

num = int(input())
# 先处理0的特殊情况,初始计数设为1
count = 1 if num == 0 else 0

temp = num
while temp != 0:
    temp //= 10
    count += 1

# 根据计数选择对应的单位形式
unit = 'digit' if count == 1 else 'digits'
print(f"{count} {unit}")

代码说明

  • 单独处理0的情况,直接把初始计数设为1,避免循环不执行导致的计数错误
  • 用临时变量temp做循环计算,保留原输入的num(也可以直接修改num,用临时变量只是更清晰)
  • 通过条件表达式判断计数是1还是大于1,自动选择单数或复数单位

内容的提问来源于stack exchange,提问作者V Fried

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:03:24