我对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。这是我从亚马逊购买的一本书的奖金测验部分中的一个问题。
答案 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=6
,8
,10
,12
等其他整数值会发生什么情况。您可以使用round
,{{1 }或者这些模式的变体,以便处理floor
和i=7
等输入。