Python 请打印一份替代品

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

我需要用Python打印一个简单的棋盘,它必须有8行8列

这就是我到目前为止所做的:

范围(0,8)中的每一行的
:
对于范围(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