【发布时间】:2020-09-26 09:32:20
【问题描述】:
所以我正在尝试制作一个基于文本的 connect-4 游戏,以便更好地理解 Python 及其实际工作原理。
短版
- 如何将每次运行的 while 循环中的打印文本附加到 while 循环之前存在的打印输出中
- 在下面看到的两种方法(正在进行的工作和当前成功工作的一种)中,哪一种是执行所需输出的更好做法?
加长版
我正在尝试使用循环系统在每次转弯后以均匀间隔且美观的格式打印出数组,以便用户在下一次转弯之前清楚地反馈当前电路板的外观。 为此,我希望能够拥有尽可能小的代码行,以便更容易阅读代码本身。尽管这可能不是执行此场景的最佳实践,但我想更好地理解这种编码方式,以便在需要时将其应用于未来的项目。
就实际执行而言,我正在尝试使用 while 循环将数组的 7 个位置一个接一个地附加到同一输出行中,用于同一行中的数组位置。在此之后,我想在前一行下方的行上打印下一行,如“所需输出”下面的代码所示。
提前感谢您的回答、建议和 cmets。
进行中
import numpy as np
ARRAY = np.zeros(shape=(6, 7), dtype = 'int8')
# In reality I will be using an empty array that gradually gets populated
# Zeros are used for ease of asking the question
def Display_board():
i = 0
while i < 7:
j = 0
print(" ", end = " ")
while j < 8:
print(str(ARRAY[i][j]))
j += 1
i += 1
进行中的输出
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
# It goes on but didn't include as it would take up unnessary space in the question
如果我将打印数组的行更改为如下所示,我会得到另一个不需要的输出
print(str(ARRAY[i][j]), end = " ")
#output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
当前工作方法 - 提供所需的输出
def Display_board():
for i in range(6):
print(" " + str(ARRAY[i][0]) + " " + str(ARRAY[i][1]) + " " + str(ARRAY[i][2]) \
+ " " + str(ARRAY[i][3]) + " " + str(ARRAY[i][4]) + " " + str(ARRAY[i][5])\
+ " " + str(ARRAY[i][6]))
期望的输出
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
【问题讨论】:
标签: python-3.x numpy loops