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

如何在循环中反转字符串 解决Python十进制转二进制结果逆序问题

问题原因

  • 单字符反转无效:你每次循环生成的x是长度为1的字符串,对单个字符执行x[::-1]不会有任何变化,你并没有把所有余数拼接后统一反转。
  • 单次打印自动换行:Python的print()函数默认会在输出末尾加换行符,每次循环单独打印单个余数自然会竖向展示。

修正后代码

num = int(input("Enter a number: "))
bin_str = ""
while num > 0: 
    remainder = num % 2
    num = num // 2
    # 把当前余数拼接到结果字符串末尾
    bin_str += str(remainder)
# 循环结束后统一反转整个字符串,得到正确的二进制顺序,一次性输出
print(bin_str[::-1])

如果需要兼容输入为0的场景,可以加上边界判断:

num = int(input("Enter a number: "))
if num == 0:
    print("0")
else:
    bin_str = ""
    while num > 0: 
        remainder = num % 2
        num = num // 2
        bin_str += str(remainder)
    print(bin_str[::-1])

验证说明

输入19时,循环过程中拼接得到的bin_str是11001,反转后得到10011,和十进制19对应的正确二进制值一致,且只会输出一行内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:45:05