在python 3中使用变量的值作为计数器

时间:2013-09-04 14:18:33

标签: python for-loop python-3.x counter

我想从用户那里获取输入并将其存储在变量中,比如说k。然后使用此k作为for loop的计数器。

while i<k:不起作用! 代码:

k= input('number of points:')
p=[]
i=0
while i<k:
x=float(input('Enter value='))
p.append(x)
i=i+1

输出:

number of points:3
Traceback (most recent call last):
File "/home/ramupradip/tes.py", line 4, in <module>
while i<k:
TypeError: unorderable types: int() < str()

我也尝试过使用范围

for i in range(1,k)

给了我一个错误: Traceback(最近一次调用最后一次):   文件“/home/ramupradip/reflect.py”,第6行,in     对于范围内的i(1,k): TypeError:'str'对象不能解释为整数

2 个答案:

答案 0 :(得分:1)

阅读如下输入:

k = int(input('enter counter: '))

...我想您忘了将号码转换为int,但是如果您不显示相关代码则无法判断。除此之外,问题中显示的循环结构应该可以正常工作,但第一个在Python中是首选,只需要小心索引:

for i in range(1, k+1):
    # do something

等效地:

i = 1
while i <= k:
    # do something
    i += 1

答案 1 :(得分:0)

这没有任何意义。 你可能想要这个:

for i in range(k):
     ...

其中k是用户设置的次迭代的总数,而i是一个从0更改为k - 1的值。 或者你可能想要这个:

for k in range(x):
     ...

其中k是从0x - 1的值,用户输入并不意味着什么。或者你可能想要这个:

for i in range(k, x):
    ...

如果k是用户设置的起始值,x是由程序设置的值,i是从k开始并以x - 1

有关详细信息,请参阅文档http://docs.python.org/3/library/functions.html#func-range