所以,我正在努力去理解这种简单的练习
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()
(你会这么善良并告诉我他们的意思吗?)?
答案 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)))