我必须编写一个程序,显示一列公斤和一列磅,从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磅。
提前致谢!
答案 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
为增量逐步浏览值99
至2
。
根据你的描述,这样的东西就足够了:
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)
您可能需要将打印输出更改为您喜欢的格式。