Python ASCII 艺术
我有一个关于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=6
、8
、10
、12
等整数值会发生什么。你可以使用 round
、floor
或这些模式的变体来处理像 i=7
和 9
这样的输入。