我很难让while循环保持循环,直到满足这两个条件。我只应该使用while循环或者if语句/布尔值(如果需要)。
我想打印一个游戏的网格大小长X宽。 所以假设
LENGTH = 5
WIDTH = 6
def create_grid(grid):
x = 0
y = 0
while x < WIDTH and y < LENGTH:
table = print(grid[WIDTH * x + y] + '|')
x +=1
y +=1
return table
如何使上述表达式的x+=1和y+=1的while循环到循环? 我希望它能打印出这个表达式
while y < LENGTH:
print('|' + grid[(0) * WIDTH + y] + '|' + '|' + grid[(1) * WIDTH + y] + ...
+ '|' + grid[(all the way up to WIDTH - 1) * WIDTH + y] + '|')
y += 1
return ###expression above
我放在括号里,我想用数字来代替x,x+1,…一直到x=WIDTH-1(或x<;WIDTH)。
我想我可以将这些片段连接起来,只使用一个while循环,但是如果网格尺寸很大,那么写出整个网格将占用太多空间。
从概念上讲,while循环与for循环完全相同,只是没有增量。因此,如果需要使用while实现循环,只需按照for循环的方式执行,但要自己递增。所以这意味着你只需要嵌套两个whiles:
作为示例给出的两个示例代码的问题是,您只使用了一个循环。
一个可能有助于解决(编程)问题的“诀窍”是试图描述你将如何“用手”做这件事。在这里,要绘制网格,应该从第一列的第1行绘制到第H行的单元格,然后对第2列再次绘制,依此类推。
在pseuso代码中:
显然,有很多重复的相同的代码。这需要嵌套循环。这是你在另一个循环中的第一个循环:
这里我使用了一个
while
循环,因为它似乎是您喜欢的。但正如其他人已经说过的,这种事情的“自然”工具是for
循环。通常情况下,您可以使用一个
for
循环来完成此操作;我只使用切片:对于一个
while
循环,在这个循环中,您可以使用:注意,我们只是一次跳过整个网格的步骤,让每行的步骤都工作。你也可以在循环中完成这一部分:
要按列列出网格(因此,换位),需要使用:
相关问题 更多 >
编程相关推荐