我已获得以下代码:
fn = input("Choose a function(1, 2, 3, 4, 5, other(quit)): ");
while (not(fn > '5' or fn < '1')):
print("hello world");
大部分时间都可以使用。例如,如果我输入54或一些疯狂的数字,它将永远不会打印&#34; hello world&#34;。
但是,当我输入45时,它确实进入了循环
这是为什么?
答案 0 :(得分:0)
Python不会以半冒号结束语句
while
或not
都不需要括号。
你需要比较数字,而不是字符串。但是等等,input
在Python3中返回一个字符串,所以你也需要int()
。
fn = input("Choose a function(1, 2, 3, 4, 5, other(quit)): ")
if fn == 'quit':
# break out of this choose a function prompt
else:
while int(fn) in range(1, 5 + 1): # +1 because non-inclusive ranges
print("hello world")
而且,这将是一个有效输入的无限循环,所以只需为那个
做好准备答案 1 :(得分:-1)
您使用的是字符串而不是数字('5'
,'1'
)。字符串比较由单个字符和字符“4”完成。在&#39; 45&#39;算得少于字符&#39; 5&#39;。
>>> ord('4')
52
>>> ord('5')
53
答案 2 :(得分:-1)
你可以写一下来解决它:
fn = input("Choose a function(1, 2, 3, 4, 5, other(quit)): ");
while str(fn) + ',' in '1,2,3,4,5,':
print("hello world");