Python:范围不会增加

时间:2016-09-28 02:10:55

标签: python for-loop

我必须编写一个程序,显示一列公斤和一列磅,从1公斤开始到99结束,每步增加2。

我有以下代码,范围()适用于磅部分,但不适用于公斤部分。公斤总是保持1分。

for k in range(1,3,1):
    print("Kilograms","Pounds",sep="        ")
    for i in range(1,101,2):
       for j in range(2,223,3):
           print(i,"",j,sep="        ")
       break
    break

另外,为什么我不能在该范围内使用浮子,因为正式它是2.2磅。

提前致谢!

3 个答案:

答案 0 :(得分:1)

因为您在循环中使用break

在python中,除了减少缩进之外,你不能用任何东西结束循环。删除break语句,然后重试。

break语句无条件地结束当前循环。例如,

s = 0
for i in range(1, 101):
    s = s + i

会使s等于5050.但是,如果你在某些地方打破它,比如

s = 0
for i in range(1, 101):
    s = s + i
    if i == 5:
        break

s将在15日停止增加。

正如评论员所说,你应该从一些教程中学习python的基础知识。互联网上有很多免费教程。不要急忙。

此外,如果你想在范围内使用浮动步骤,请看this answer;或者更确切地说,请参阅下面的评论以获得简单的答案。

答案 1 :(得分:1)

首先,删除中断,因为这些会过早地结束循环迭代。其次,为什么使用嵌套的for循环?

对于您所描述的内容,甚至不需要嵌套循环。您只需使用一个 for循环。使用range() 一次,以1为增量逐步浏览值992

根据你的描述,这样的东西就足够了:

for i in range(1, 100, 2): # for the numbers 1-99, going by twos
    print('pounds: {} kilograms: {}'.format(i, i * 2.2)) # print pounds, print kilograms

你似乎对python中的循环感到困惑,并且他内置了range()函数。我建议查看两者的官方Python文档:

答案 2 :(得分:0)

试试这个

import numpy as np


KG_TO_LBS = 2.20462
KG = np.arange(0,100,2.20462)

print("Kilograms", "Pounds")
for kg in KG:
    print(kg, kg/KG_TO_LBS)

您可能需要将打印输出更改为您喜欢的格式。