Reputation: 107
I'm struggling to understand this 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 thought 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?
Upvotes: 8
Views: 71330
Reputation: 1
spam=['apples','bananas','tofu','cats']
def fruits():
i=0
while (i<len(spam)):
if(i!=(len(spam)-1)):
print(spam[i],end=', ')
else:
print("and",spam[i])
i=i+1
fruits()
Upvotes: 0
Reputation: 1
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
Upvotes: 0
Reputation: 9
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!
Upvotes: 0
Reputation: 12192
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='')
Upvotes: 0
Reputation: 35726
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.
Upvotes: 1
Reputation: 14771
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)
Upvotes: 11