这是我要打印的图案
1
3.2
654
10987
现在我有了一个解决方案,但我不知道它到底是如何工作的
解决方案:
length = 6
start = 1
stop = 2
currentNumber = stop
for row in range(stop, length):
for col in range(start, stop):
currentNumber -= 1
print(currentNumber, end=" ")
print(" ")
start = stop
stop += row
currentNumber = stop
我认为它是这样工作的:
# for row in range(2, 6): 2, 3, 4, 5,
# for col in range(1, 2):
# currentnum = 2-1 = 1
# print( 1 )
# start = stop (start = 2)
# stop += 2 (row = 2,3,4,5) so now stop = 2 + 2 = 4
# currentNumber = 4
# for row in range(4, 6): 4,5
# for col in range(2, 4): 2, 3 means 2 time will loop run
# currentnum = 4-1 = 3,
# currentnum = 3-2 = 2
# print( 3, 2 )
# start = stop (start = 4)
# stop += 3 (stro = 4+3 = 7)
# currentnum = 7
**PROBLEM**
# for row in range(7, 6):
# for col in range(4, 7): 5,6,7 means 3 time will loop run
# currentnum = 7-1 = 6,
# currentnum = 7-2 = 5,
# currentnum = 7-3 = 4,
# print( 6, 5, 4)
# start = stop (start = 7)
# stop += 3 (stro = 7+3 = 11)
# currentnum = 11
下面是问题(talking from the #commented calculations
):
for i in range(11, 6):
for j in range(4, 7):
print("h")
print("k")
print("j")
由于(11,6),该For循环将不会执行
这就是我的计算出错的地方,我知道我不知道这个解决方案是如何工作的。 任何对当前解决方案有更好的解决方案或解释的人都将不胜感激
只想知道代码是如何工作的
谢谢
我认为您理解的问题是每次更改停止时都要重新编写第一个for循环。但是,不应该这样做,因为for循环只在开始时计算,所以在循环已经运行时更改变量
stop
不应该对循环产生影响,如果这样做是有意义的话。我在这里更正了您的“理解”部分:希望这是有道理的,但请随时要求澄清。请注意,最后几行并不重要,因为它是最后一个for循环
相关问题 更多 >
编程相关推荐