python - 二进制到十进制 Python 解决方案的字符串索引错误
问题描述
我想出了一个python代码来将二进制转换为十进制。我的代码的第一部分是计算输入数字的长度,第二部分是将其转换为十进制。
但是在第 12 行,我遇到了字符串索引超出范围错误。我可以知道如何纠正这个吗?根据我有限的理解,它不应该超出范围,因为它在数字的长度内。
谢谢!
num=(input("Your binary input please: "))
counter=int(num)
count=0
total=0
start=0
power=0
while counter!= 0:
counter//=10
count+=1 #the total length of digits
print(count)
for i in range(count,-1,-1):
total+=int(num[i])*2**power
power+=1
print(total)
解决方案
>>> count = 4
>>> for i in range(count,-1,-1):
... print(i)
...
4
3
2
1
0
如果您有一个 4 字符长的字符串,则索引从 0 到 3。您从 4 开始,num[4] 不存在。
语法范围(开始、停止、步进)
你必须设置开始计数 - 1。
推荐阅读
- android - 无法在 Android 手机上调试 service-worker
- python-3.x - fn.AVG peewee 函数的意外行为
- django - Django将数据保存到错误的字段
- javascript - 等待在没有承诺的情况下执行一组操作
- excel - 尝试引用不同工作簿中的工作表并将其分配给变量时出现运行时错误 1004
- linq - 如何加入两个 linq 查询以查找它们之间的一些公共数据
- c++ - 如何在 C/C++ 中将 unsigned char* 转换为 unsigned char 数组?
- javascript - web app - 更新文本文件的静态网站
- c++ - 检查路径是否包含 C++ 中的另一个
- zabbix - TCP 成功,无法建立到 [[127.0.0.1]:10050] 的 TLS:无法与 TLS 和证书连接:未加载有效证书