我想从用户那里获取输入并将其存储在变量中,比如说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'对象不能解释为整数
答案 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
是从0
到x - 1
的值,用户输入并不意味着什么。或者你可能想要这个:
for i in range(k, x):
...
如果k
是用户设置的起始值,x
是由程序设置的值,i
是从k
开始并以x - 1
有关详细信息,请参阅文档http://docs.python.org/3/library/functions.html#func-range