Python 请打印一份替代品
我需要用Python打印一个简单的棋盘,它必须有8行8列 这就是我到目前为止所做的: 范围(0,8)中的每一行的Python 请打印一份替代品,python,alternation,Python,Alternation,我需要用Python打印一个简单的棋盘,它必须有8行8列 这就是我到目前为止所做的: 范围(0,8)中的每一行的: 对于范围(0,8)中的每个_列: 打印(“,end=”“) 对于范围(0,8)内的k: 打印(“x”,end=“o”) 打印(“”) 它打印出如下内容: xoxo xoxoxo xoxoxo xoxoxo 但我想要这样的东西: xoxo 奥克斯 xoxoxo 奥克斯 您应该使用条件if-else来打印每行的不同图案 输入 输出 xoxoxoxoxoxoxoxo oxoxoxox
:
对于范围(0,8)中的每个_列:
打印(“,end=”“)
对于范围(0,8)内的k:
打印(“x”,end=“o”)
打印(“”)
它打印出如下内容:
xoxo
xoxoxo
xoxoxo
xoxoxo
但我想要这样的东西:
xoxo
奥克斯
xoxoxo
奥克斯
您应该使用条件if-else来打印每行的不同图案
输入
输出
xoxoxoxoxoxoxoxo
oxoxoxoxoxoxoxox
xoxoxoxoxoxoxoxo
oxoxoxoxoxoxoxox
xoxoxoxoxoxoxoxo
oxoxoxoxoxoxoxox
xoxoxoxoxoxoxoxo
oxoxoxoxoxoxoxox
试试这个:
for each_row in range(0,8):
for each_column in range(0,8):
print(" ", end="")
if each_row % 2 == 0:
for k in range(0, 8):
print("x", end="o")
else:
for k in range(0, 8):
print("o", end="x")
print("")
或者,更优雅一些:
for each_row in range(0,8):
for each_column in range(0,8):
print(" ", end="")
for k in range(0, 8):
print("x" if each_row % 2 == 0 else "o", end="o" if each_row % 2 == 0 else "x")
print("")
或:
以下是解决您的问题的清晰解决方案:
figure = 'x'
for each_row in range(0,4):
figure = 'x' if figure == 'o' else 'o'
for each_column in range(0,6):
print(figure,end="")
figure = 'x' if figure == 'o' else 'o'
print("")
使用变量跟踪下次要打印的图形,并根据需要将其更改为其他图形
输出:
xoxoxo
oxoxox
xoxoxo
oxoxox
一种生成任意大小网格的通用解决方案,使用
letters=cycle('xo')
创建一个迭代器,该迭代器将生成“x”、“o”、“x”、“o”。。。无限期地循环
islice(字母,n)
将给我们下一个n
字母
我们需要跳过一个字母来移动下一行,以防网格的大小是均匀的:我们可以使用next(字母)
来完成,这样就可以得到下一个字母(然后扔掉它)
因此,代码可以是:
from itertools import cycle, islice
def grid(size):
letters = cycle('xo')
lines = []
for _ in range(size):
lines.append(''.join(islice(letters, size)))
if size % 2 == 0:
next(letters)
return '\n'.join(lines)
奇数大小的示例:
print(grid(3))
xox
oxo
xox
尺寸均匀:
print(grid(4))
xoxo
oxox
xoxo
oxox
你是否试过不做同样的事情8次,但做2件不同的事情4次?
print(grid(3))
xox
oxo
xox
print(grid(4))
xoxo
oxox
xoxo
oxox