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

Python如何实现接收用户输入的二进制数并转换为十进制数

错误原因

你的代码逻辑顺序完全颠倒了:

  • 你首先将用户输入的二进制字符串用int(input())直接按十进制规则转成了整数,比如用户输入二进制的101(对应十进制5),这一步会得到十进制整数101,而不是你以为的二进制对应值。
  • 后续bin(n)是把这个十进制整数再转成二进制格式的字符串,再调用int(bin_n, 2)只是把这个字符串又转回了最开始得到的十进制整数,自然输出和输入的数字一模一样。

正确实现

你不需要做多余的格式转换,用户输入的本身就是二进制格式的字符串,直接调用int()时指定第二参数为2即可完成转换:

print("Please input your number")
bin_input = input().strip()
# 直接将二进制字符串按base=2规则转成十进制整数
dec_num = int(bin_input, 2)
print(dec_num)

可选校验逻辑

如果要避免用户输入非二进制字符触发报错,可以加一层输入合法性校验:

print("Please input your number")
bin_input = input().strip()
# 校验输入是否仅包含0和1
if all(c in '01' for c in bin_input):
    dec_num = int(bin_input, 2)
    print(f"对应的十进制数为: {dec_num}")
else:
    print("输入无效,请输入仅包含0和1的二进制数")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:45:02