首页 > 解决方案 > 二进制到十进制 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)

   

标签: python

解决方案


>>> count = 4
>>> for i in range(count,-1,-1):
...  print(i)
... 
4
3
2
1
0

如果您有一个 4 字符长的字符串,则索引从 0 到 3。您从 4 开始,num[4] 不存在。

语法范围(开始、停止、步进)

你必须设置开始计数 - 1。


推荐阅读