0

我想从用户那里获取输入并将其存储在一个变量中,比如说k. 然后将其k用作 a 的计数器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 for i in range(1,k): TypeError: 'str' object cannot be explain as一个整数

4

2 回答 2

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
于 2013-09-04T14:41:39.513 回答
0

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

for i in range(k):
     ...

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

for k in range(x):
     ...

from的k值在哪里,用户输入没有任何意义。或者你可能想要这个:0x - 1

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

wherek是用户设置的起始值,x是程序设置的i值,是开始k和结束的值x - 1

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

于 2013-09-04T14:51:51.500 回答