end =''究竟做什么?

时间:2013-12-04 10:13:15

标签: python python-3.x

所以,我正在努力去理解这种简单的练习

def a(n):
    for i in range(n):
        for j in range(n):
            if i == 0 or i == n-1 or j == 0 or j == n-1:
                print('*',end='')
            else:
                print(' ',end='')
        print()

打印一个空方块。我认为我可以使用代码

            print("*", ''*(n-2),"*")

在正方形的上侧和下侧之间打印单位,但它们不会与上/下侧对齐,如果您运行第一个代码,则不会发生...所以..这可能是因为end=''print()(你会这么善良并告诉我他们的意思吗?)?

5 个答案:

答案 0 :(得分:5)

检查reference page of print。默认情况下,正在打印的项目附加换行符(end='\n'),并使用end=''将其打印在同一行上。

print()打印一个空的换行符,这是继续在下一行打印所必需的。

已编辑:添加了一个示例 实际上你也可以使用它:

def a(n):
    print('*' * n)
    for i in range(n - 2):
        print('*' + ' ' * (n - 2) + '*')
    if n > 1:
        print('*' * n) 

答案 1 :(得分:1)

spam = ['apples', 'bananas', 'tofu', 'cats']
    i = 0
    for i in range(len (spam)):
        if i == len(spam) -1:
            print ('and', spam[i])
        elif i == len (spam) -2:
            print (spam [i], end=' ')
        else:
            print (spam [i], end=', ')

所以我对这整个编码工作都很陌生,但我想出了这段代码。它可能没有其他东西那么复杂,但它确实起到了作用。

答案 2 :(得分:0)

在Python 3.x中,end =''用于在显示的字符串后面放置一个空格而不是换行符。

请参阅this以获取进一步说明。

答案 3 :(得分:0)

print()在具有多个参数时使用一些分隔符。在你的代码中你有3个(“”是第一个,''(n-2) - 秒,“*” - 第三个)。如果您不想在它们之间使用分隔符,请将sep =''添加为关键字参数。

print("*", ' '*(n-2), "*", sep='') 

答案 4 :(得分:-1)

print('\n'.join('*{}*'.format((' ' if 0<row<n-1 else '*')*n-2) for row in range(n)))