我要做的是创建一个带有星号的字符串对象,可以通过用户输入进行缩放。例如,用户输入4:
****
* *
* *
****
所以我有两个单独的功能,一个创建顶部和底部“****” 和创造中间的人。当我将它们分开时,它会工作,我只打印topbottom,打印中间,打印tobbottom。但我想只使用一次打印,所以我将3个功能合并到下面的代码中。
user = input("How many times?")
def hollow(user):
# top
var = ""
for s in range(user):
var += "*"
# middle
output = ""
middle = "*"
for x in range(1, user - 1):
middle += " "
middle += "*"
amount = user - 2
for i in range(0, amount):
if i == (amount - 1):
output += middle
else:
output += middle
output += "\n"
# bottom
var2 = ""
for z in range(user):
var2 += "*"
final = var + output + var2
print(final)
hollow(user)
这是我使用此代码获得的输出:
How many times?4
***** *
* *****
所以这里的问题是:如何让这段代码运行我在本文开头展示的形状?
答案 0 :(得分:0)
您需要将换行符添加到最终变量中:
final = var + '\n' + output + '\n' + var2
请注意,您的代码可以简化为:
def hollow(user):
print ('*' * user + '\n' + ('*' + ' ' * (user-2) + '*\n') * (user-2) + '*' * user)
hollow(4)