Python ASCII艺术

时间:2014-05-07 02:33:54

标签: python

我对Python ASCII Art有疑问。

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 个答案:

答案 0 :(得分: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等其他整数值会发生什么情况。您可以使用round,{{1 }或者这些模式的变体,以便处理floori=7等输入。