What Does End=' ' Exactly Do?
So, I'm Struggling Trying to Understand This Kinda Simple Exercise 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...
So, I'm struggling trying to understand this kinda simple exercise
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()
which prints an empty square. I tought I could use the code
print("*", ''*(n-2),"*")
to print the units in between the upper and the lower side of the square but they won't be aligned to the upper/lower side ones, which doesn't happen if you run the first code... so... could this be because of end='' or print() (would you be so kind and tell me what do they mean?)?
6 Answers
Check the reference page of print. By default there is a newline character appended to the item being printed (end='\n'), and end='' is used to make it printed on the same line.
And print() prints an empty newline, which is necessary to keep on printing on the next line.
EDITED: added an example.
Actually you could also use this:
def a(n):
print('*' * n)
for i in range(n - 2):
print('*' + ' ' * (n - 2) + '*')
if n > 1:
print('*' * n)
In Python 3.x, the end=' ' is used to place a space after the displayed string instead of a newline.
please refer this for a further explanation.
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=', ')
So I'm new to this whole coding thing, but I came up with this code. It's probably not as sophisticated as the other stuff, but it does the job.
spam = ['apples', 'bananas', 'tofu', 'cats']
def fruits():
i = 0
while i != len(spam):
if len(spam) != i :
print ('and', spam[i])
i += 1
fruits()
try this!
print() uses some separator when it has more than one parameter. In your code you have 3 ("" is first, ''(n-2) - second, "*" -third). If you don't want to use separator between them add sep='' as key-word parameter.
print("*", ' '*(n-2), "*", sep='')
use this to understand
for i in range(0,52):
print(5*"fiof" ,end=" ")
just put different things here in end and also use with sep
print('\n'.join('*{}*'.format((' ' if 0<row<n-1 else '*')*n-2) for row in range(n)))