功能组合

时间:2016-10-04 16:45:08

标签: function python-3.x

我要做的是创建一个带有星号的字符串对象,可以通过用户输入进行缩放。例如,用户输入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
*****  *
*  *****

所以这里的问题是:如何让这段代码运行我在本文开头展示的形状?

1 个答案:

答案 0 :(得分:0)

您需要将换行符添加到最终变量中:

final = var + '\n' + output + '\n' + var2

请注意,您的代码可以简化为:

def hollow(user):
    print ('*' * user + '\n' + ('*' + ' ' * (user-2) + '*\n') * (user-2) + '*' * user)

hollow(4)