Whalefall126 发表于 2023-8-7 10:58:44

while嵌套沙漏图

题目:
我们希望构建一个灵活的“沙漏”模式。这些模式的例子如下:
* * * * *
* * * *
* * *
   * *
    *
    *
   * *
* * *
* * * *
* * * * *
其中填充字符由fill = "*"这样的变量定义,填充之间的空格由blank = " "变量定义。
编写一个Python程序,使用一个或多个while循环显示上模式。创建变量output24,并在while循环中使用它来构造希望在程序结束时显示的字符串。


我先没有用创建output24的变量,得到了图一,然后我根据我自己做的图一和题目的要求改写成了图二的编码,但是报错。求大神指导!!!


isdkz 发表于 2023-8-7 10:58:59

以下是一个解决这个问题的示例代码:

fill = "*"
blank = " "
output24 = ""

# 打印上半部分
i = 5
while i >= 1:
    # 添加空格
    output24 += blank * (5 - i)
    # 添加填充字符
    output24 += fill * i
    # 换行
    output24 += "\n"
    i -= 1

# 打印下半部分
i = 1
while i <= 5:
    # 添加空格
    output24 += blank * (5 - i)
    # 添加填充字符
    output24 += fill * i
    # 换行
    output24 += "\n"
    i += 1

print(output24)


这段代码使用了两个while循环来构建沙漏图案。首先,第一个while循环打印了上半部分的图案,从5行开始递减到1行。在每一行中,我们首先添加适量的空格,然后添加适量的填充字符。然后,我们换行并减小行数。接下来,第二个while循环打印了下半部分的图案,从1行递增到5行。在每一行中,我们使用相同的逻辑来添加空格和填充字符。最后,我们通过输出变量output24来显示完整的沙漏图案。

陶远航 发表于 2023-8-7 10:58:59

根据题目的要求,你可以使用两个嵌套的 while 循环来构建沙漏图案。以下是代码示例:

fill = "*"
blank = " "

# 构建上半部分沙漏
output24 = ""
count = 4
while count >= 1:
    output24 = output24 + blank * (4 - count) + fill * (2 * count - 1) + blank * (4 - count) + "\n"
    count -= 1

# 构建下半部分沙漏
count = 1
while count <= 4:
    output24 = output24 + blank * (4 - count) + fill * (2 * count - 1) + blank * (4 - count) + "\n"
    count += 1

print(output24)


其中,上半部分沙漏的构建使用了递减的 while 循环,下半部分沙漏的构建使用了递增的 while 循环。在每次循环中,根据当前 count 的值,添加相应数量的填充字符和空格,然后将结果追加到 output24 变量中。

请注意,这只是一个示例,用于展示如何使用 while 循环构建沙漏图案。可以根据实际需求对代码进行修改和优化。

如果你遇到具体的错误或问题,请提供错误信息以便我能够更好地帮助你解决。
如果问题已经解决,请设置最佳答案
页: [1]
查看完整版本: while嵌套沙漏图