python - 创建一个正方形

标签 python string for-loop

我需要在Python中创建一个具有一定高度和长度的正方形。该代码应采用这两个参数并打印一个带有字母 O 和 I 的框,交替使用它们。它必须与 yes 行开头的字母交替。它应该看起来像这样

>>>square(5,5) 
OIOIO
IOIOI
OIOIO
IOIOI
OIOIO
# Note how each row and each column alternate! 
>>> square(5,10)
OIOIOIOIOI
IOIOIOIOIO
OIOIOIOIOI
IOIOIOIOIO
OIOIOIOIOI
>>> square(2,4) 
OIOI
IOIO

到目前为止我已经有了这个,但老实说我不知道​​如何让它交替以及如何修改高度

def square(height, length):
    a='square'
    c=(height/2)
    num=0
    symbol='OI'
    while a=='square' and int(num)<int(c):
        num+=1
        print(symbol*int(c))

建议在另一个for循环中使用一个for循环。

最佳答案

您可以使用生成器表达式、str.joinitertools.cycle()

示例:

from __future__ import print_function


from itertools import cycle


try:
    range = xrange  # Python 2/3 compatibility
except NameError:
    pass


def square(height, width, symbols="OI"):
    it = cycle(symbols)
    return "\n".join("".join(next(it) for _ in range(width)) for _ in range(height))

输出:

>>> print(square(2, 4))
OIOI
OIOI
>>> print(square(5, 5))
OIOIO
IOIOI
OIOIO
IOIOI
OIOIO

Using itertools.cycle() also ensures that the pattern also changes per row.

关于python - 创建一个正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721436/

相关文章:

java - 多个 JOptionPane 输入发送到一个字符串输出

python - 关于在python中迭代函数的问题

python - 网页抓取 - 进入第 2 页

string - 如何在字符串中找到任何第一个字符的索引而不是 swift 中的空格?

Python 矩阵提供了 numpy.dot()

python - 使用 strip 函数删除通过正则表达式获得的字符串的一部分

python - 循环 2 个列表以创建多个 sql 游标,每个游标中有 2 个变化的变量

java - For 循环不工作?

python - 如何提高这个微小距离Python函数的性能

python - Pandas :生成并绘制平均值