如何在循环中使用range()函数和变量?(Python)

6

我已经搜索了相当一段时间,但似乎找不到这个问题的答案。我想知道在使用range()函数时是否可以使用变量。例如,我无法让下面的代码工作:

l=raw_input('Enter Length.')
#Let's say I enter 9.
l=9
for i in range (0,l):
    #Do something (like append to a list)

Python告诉我在使用range函数时不能使用变量。有人能帮助我吗?


请发布完整的回溯信息... - K DawG
6
如果您的变量来自于 raw_input,它就是一个字符串。将其转换为 int 类型。 - roippi
@roippi,我同意你的看法,但是我认为我们心中所想的代码是int(raw_input('Enter Length.')),因此确切的术语不是“Cast”,而是“将其转换为整数”或“构造一个整数”。 - Ron Klein
3个回答

6

由于用户输入是一个字符串,而你需要整数值来定义范围,因此可以使用int方法将输入强制转换为整数值。

>> l=int(raw_input('Enter Length: '))  # python 3: int(input('Enter Length: '))
>> for i in range (0,l):
>>    #Do something (like append to a list)

1
for i in range(l) 更短,但实现相同的功能。 - Jean-François Fabre

0

请要求用户输入一个数字

l = raw_input('Enter Length: ')

但问题在于输入的数字将被表示为字符串而不是整数。因此,您需要将字符串转换为整数。

l = int(raw_input('Enter Length: '))

如果你使用Python 2.X,你也可以优化你的代码 - 而不是使用range,你可以使用xrange。它的速度更快。

for i in xrange (l):
    #Do something (like append to a list)

在Python 3.X中,默认实现了xrange。


-2

尝试这段代码:

x = int(input("the number you want"))
for i in range(x):

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接