我的 True 或 False 函数正在工作,但如何在 True 语句中以一致的间距交替行?

My True or False function is working but how do I alternate the rows with consistent spacing in the True statement?

提问人:DummyWComputer 提问时间:9/30/2023 最后编辑:BarmarDummyWComputer 更新时间:9/30/2023 访问量:37

问:

我尝试重新排列代码,我非常接近弄清楚这一点,但在我的 True 语句中,结果接近正确,但我无法弄清楚。此家庭作业要求行与空格交替,如果为 True,但如果为 False,则它们必须形成一个正方形。

我的代码:

def get_brick_pattern(max_rows=1, max_cols=1, running_bond=True or False):
    brick = "🧱"
    result = ""
    columns = max_cols
    rows = max_rows
    if running_bond is True:
        for rows in range(max_rows):
            for columns in range(max_cols):
                if (rows) % 2 == 0:
                    result += brick
                else:
                    result += " " + brick
            result += "\n"
        return result
    elif running_bond is False:
        for rows in range(1, max_rows+1):
            for columns in range(1, max_cols+1):
                result += brick
            result += "\n"
        return result

print(get_brick_pattern(3, 6, True))---for testing

结果应该看起来像一个示例:

🧱🧱🧱🧱🧱🧱🧱🧱
  🧱🧱🧱🧱🧱🧱🧱🧱
🧱🧱🧱🧱🧱🧱🧱🧱

我当前对 True 语句的输出如下所示:

🧱🧱🧱🧱🧱🧱
 🧱 🧱 🧱 🧱 🧱 🧱
🧱🧱🧱🧱🧱🧱
python 函数 if 语句 间距

评论

0赞 Barmar 9/30/2023
你需要解释这应该做什么。
0赞 Matthias 9/30/2023
参数定义没有意义。既然这归结为.是否要进行类型提示?running_bond=True or FalseTrue or FalseTruerunning_bond=True

答:

0赞 Barmar 9/30/2023 #1

您不应该在内循环中的每块砖之前添加一个空格,就在行的开头。将检查移至外循环。if rows % 2 == 0:

那么你根本不需要内部循环,因为你可以使用重复一个字符串 N 次。*

        for rows in range(max_rows):
            if row % 2 == 1:
                result += " "
            result += brick * max_cols
            result += "\n"
        return result
0赞 Reilas 9/30/2023 #2

"...如果为 True,则行与空格交替,但如果为 False,则它们必须形成一个正方形......”

检查内循环前的行 % 2

for rows in range(max_rows):
    if (rows) % 2: result += ' '
    for columns in range(max_cols):
        result += brick
    result += "\n"

输出,用于 3、6

🧱🧱🧱🧱🧱🧱
 🧱🧱🧱🧱🧱🧱
🧱🧱🧱🧱🧱🧱