【问题标题】:for x in range does not accept the last input [duplicate]for x in range 不接受最后一个输入[重复]
【发布时间】:2015-02-04 21:54:27
【问题描述】:
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 个输入输出十进制格式,但对于最后一个,当输入正确时,它仍然输出“程序将结束”而不是小数。

编辑: 感谢大家的帮助,我已经解决了问题

【问题讨论】:

标签: python for-loop


【解决方案1】:

....对于最初的 3 个输入,但对于最后一个

我在您的代码中看到以下循环

for x in range (0,3):

请注意,function range is "half-open" 表示它包含第一个值,但不包含最后一个值。换句话说,x 将采用这些值

0
1
2

如果您还想包含您需要的值3

for x in range (0,4):

【讨论】:

  • 谢谢,有什么方法可以包含所有值吗?
  • 不清楚。如果你想要最后一个值,那么你可以写 lastvalue+1。例如,您想按用户输入值,那么您不知道最后一个数字是什么。所以,如果用户的 value=a,那么你可以写 for x in range(0,a+1)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
  • 2015-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多