我有一个Python列表
q_s = [1E2,1E4,1E8,0]
我试图以1E2
的步长循环遍历1E8
到1E4
的值。所以,我需要将循环值设为1E2
+ 0 * 1E4
,1E2
+ 1 * 1E4
,1E2
+ 2 * 1E4
等等。
尝试输出:
尝试:
这是我的尝试:
for j in range(q_s[0],q_s[2],q_s[1]):
print j
输出:
以下是它给出的错误消息:
Traceback (most recent call last):
File "C:\test.py", line 2, in <module>
for q in range(q_s[0],q_s[2],q_s[1]):
TypeError: range() integer end argument expected, got float.
[Finished in 0.3s with exit code 1]
其他信息:
对于开始,停止和步骤值,开始(1E2
)和停止(1E4
)值对于我正在做的事情是切合实际的。步骤值(1E4
)仅用于测试目的 - 理论上,我认为我应该可以自由地使用任何值 - 代码不应该强迫我选择某些步长来通过{{ 1}}循环。
问题:
有没有办法使用上面的开始,停止和步长来循环这个循环?
答案 0 :(得分:2)
问题是Python中的xEy
会返回float
,而不是int
。 range
仅处理int
s。
解决方案是将您的值转换为int
,如下所示:
for j in range(int(q_s[0]), int(q_s[2]), int(q_s[1])):
print j