我在Windows PowerShell中使用Python 2.7。
def loop(loop):
i = 0
numbers = []
while i < loop:
print "At the top i is %d" % i
numbers.append(i)
i += 1
print "Numbers now: ", numbers
print "At the bottom i is %d" % i
value = raw_input("Choose the loop value:\n>")
print value
loop(value)
当我输入6
作为value
的输入时,loop()
会变成无限循环。
知道出了什么问题吗?
答案 0 :(得分:4)
raw_input
的结果,变量value
(在函数中传递给loop
)是一个字符串。您将此与i
(整数)进行比较。在Python 2.x中,所有整数都小于所有字符串,因此无论i < loop
有多大,i
始终为真。
将输入转换为整数以使比较起作用:
value = int(raw_input("Choose the loop value:\n>"))
(我还建议不要将函数的参数命名为函数本身;它只是令人困惑。)
答案 1 :(得分:1)
您必须将raw_input
放入int()
。
取代:
value = raw_input("Choose the loop value:\n>")
on:
value = int(raw_input("Choose the loop value:\n>"))
或者你可以改变:
while i < loop:
到
while i < int(loop):
答案 2 :(得分:0)
我确信你实际上是在运行循环('6')而不是循环(6)。
答案 3 :(得分:0)
因为value是一个字符串
你应该像这样调用你的函数
loop(int(value))