new = 0
binary=input ("Enter binary:")
length = len(binary)
for x in range (0,3):
if length<9 and all (c in "01" for c in binary):
for digits in binary:
new = new*2 + int(digits)
print ("The binary numbers {0} converted into decimal is {1}".format(binary,new))
break
else:
binary=input ("Try again. Enter binary (max. 8):")
print ("The programme will end")
代码运行良好,输出前 3 个输入的十进制格式,但对于最后一个输入,当输入正确时,它仍然输出"程序将结束"而不是小数。
编辑:感谢您的所有帮助,我已经解决了问题
....对于最初的 3 个输入,但对于最后一个输入
我在您的代码中看到以下循环
for x in range (0,3):
请注意,函数range
是"半开放"的,这意味着它包含第一个值,但不包含最后一个值。换句话说,x
将承担这些价值观
0
1
2
如果还想包含所需的值3
for x in range (0,4):