Python ASCII 艺术

0 投票
1 回答
969 浏览
提问于 2025-04-18 05:37

我有一个关于Python ASCII艺术的问题。

User inputs 6.
XXXXXX
X    X
XX  XX
XX  XX
X    X
XXXXXX

User inputs 8.
XXXXXXXX
X      X
X      X
XXX  XXX
XXX  XXX
X      X
X      X
XXXXXXXX

我该如何在Python 3中制作类似这样的东西,并且使用用户输入的内容呢?

有没有人能给我一些建议?我刚开始在家学习Python。这是我从亚马逊买的书中附加测验部分的一个问题。

1 个回答

1

创建一个简单的算法,生成这些字符,使用必要的数学模式来创建这些字符。以你给出的数字为例,注意你可以为这些数字使用一个模式。

比如说,假设用户输入的是 i

第一行 XXXXXX 是六个字符。如果输入 i=8,那就是八个字符。那么为什么不输出字符 X,输出 i 次呢?

print "X"*i

这就是你的第一行。接下来继续处理其他行。

第二行是 X X。对于输入 i=6,中间有四个空格;对于输入 i=8,中间有六个空格。所以这里明显有一个模式。那么为什么不先输出一个 X,然后输出 i-2 个空格,再输出另一个 X 呢?

print "X" + " "*(i-2) + "X"

第三行可以用同样的方法完成:

print "X"*(i-2)/2 + " "*(i/2-2) + "X"*(i/2)/2

你应该能够从这里完成剩下的部分,反转字符并尝试不同的输入。想想其他不是 i=681012 等整数值会发生什么。你可以使用 roundfloor 或这些模式的变体来处理像 i=79 这样的输入。

撰写回答