无论我做什么,我都无法在循环工作时得到这个;除非我对该值进行硬编码。
count = 0
value = raw_input('How many?')
print value
while (count <= value):
print "a"
count= count + 1
起初我尝试使用命令行参数,使用sys.argv [1]获取值,但我遇到了同样的问题。这看起来很简单,但我不能为我的生活弄清楚我做错了什么。
答案 0 :(得分:9)
确保该值为整数
while (count <= int(value)):
count= count + 1
默认情况下,raw_input
是一个字符串,对于每个整数n
和每个字符串s
,我们都有n<s is True
(!),因此你的循环(没有int
1}})永不休息。
注意:在Python 3中,比较字符串和整数将给出TypeError: unorderable types: str() < int()
,这可能是更“预期”的行为。
答案 1 :(得分:1)
首先将输入转换为整数
value = int(raw_input('How many?'))
print value
答案 2 :(得分:1)
顺便说一下,如果你真的想让你的陈述被value
次打印更改条件
count <= int(value)
到
count < int(value)
或从1
开始count