Python用while循环倒序输出整数各位时如何消除末尾多余的0
问题原因
你代码中多余的0是Python3的除法规则导致的:
/在Python3中为浮点数除法,例如1 / 10的结果是0.1,而非整数0,此时i != 0的判断依然成立,会额外执行一次循环- 本次额外循环中
0.1 % 10的计算结果为0,打印后i被赋值为0.1 / 10 = 0.0,才满足退出条件,因此末尾多输出了0 - 代码中重复对
i做int()转换属于冗余操作,可直接删除
修复方案
将浮点数除法/替换为整数除法//即可,修复后的代码如下:
i = int(input()) while i != 0: a = i % 10 print(a) i = i // 10
测试验证
输入123时,输出结果为:
3 2 1
符合预期输出要求。
可选优化:如果需要支持负数输入,可将输入转换为绝对值i = abs(int(input())),避免负数取模出现不符合预期的结果
内容的提问来源于stack exchange,提问作者Gode
相关产品推荐
相关产品推荐

