【发布时间】:2020-05-06 16:56:35
【问题描述】:
我正在尝试使用以下代码创建以下模式
7
4 8
2 5 9
1 3 6 10
def createpattern(n=4,max_val=10):
pattern = []
for x in range(1,n+1):
temp = []
step = 2
val = x
bool_flag = 1
while bool_flag == 1:
temp += [val]
if val == max_val:
print('----->')
bool_flag = 0
print('before break')
break
else:
val = val + step
step += 1
print('after break')
print(temp)
max_val = max_val - 1
pattern.append(temp)
while循环下的break按预期工作
我可以生成第一行,但是 for 循环中的 range 并没有移动到它停留在 1 的下一个迭代值。
我尝试在 append 之后在末尾添加 continue ,但是循环仍然卡住。
我无法找出纠正上述嵌套循环的方法,理想情况下它应该移动到我无法弄清楚原因的下一个迭代值
任何线索都会有所帮助
【问题讨论】:
-
n和max_val真的独立吗,还是应该max_val始终是nth triangular number? -
与问题无关:但您应该使用 pythontutor.com/visualize.html#mode=display 。用于调试
-
@chepner ,这是对模式的天真尝试,因此选择 n 和 max_val 独立
标签: python algorithm for-loop while-loop