我想打印所有的数字,直到给定的用户输入使用while循环。例如:输入:5 ==> 1 2 3 4 5但下面的程序永远循环。python字符串和整数比较
user = str(input("Enter : "))
i = 1
while i < user:
print(i)
i = i + 1
我想打印所有的数字,直到给定的用户输入使用while循环。例如:输入:5 ==> 1 2 3 4 5但下面的程序永远循环。python字符串和整数比较
user = str(input("Enter : "))
i = 1
while i < user:
print(i)
i = i + 1
ummm while i < int(user):
?
试试这个:
try:
user = int(raw_input('Enter: ')) # Cannot compare a string with an integer.
except ValueError:
print('Input should be an integer!')
i = 1
while True:
i += 1
if i > user:
break
print(i)
注:在你的代码,即使我们明确声明input
为整数它仍然没有完全工作,你希望它的方式。这是因为在您的代码中,while
循环一旦停止,即i
等于user
(条件是,而小于...,因此不会打印出最终值user
。因此,我对其进行了修改,使其在点i
大于user
更大,这意味着最后打印值将等于user
实施例前面的输出,其中user = 5
:
1
2
3
4
,并用新的代码:
然而1
2
3
4
5
这是更好地在这里使用一个for
循环,如果你不使用while
循环设置:
for i in range(1, user+1):
print(i)
你是比较一个int的STR,这就是为什么你得到一个无限循环。你应该比较同类型的变量
user = int(input("Enter: "))
应该工作
.7输入为你提供了一个评估版本的字符串(在这种情况下是一个int ...),,,我猜测OP有一些理由把它转换成一个字符串......(尽管不知道可能是什么) –
倒不如做'用户= INT(输入( “输入:”))'代替 – lejlot
@lejlot:在Python 2 ,使用'int(raw_input(“Enter:”))'代替。 'input()'已经在输入中调用了'eval()',所以在任何情况下它都会返回一个只包含数字的输入的整数。 –
我只是提到这样一个事实,即将用户转换为int一次比在循环中更好。 – lejlot