Reputation: 549
pets = ['boa', 'cat', 'dog']
for pet in pets:
print(pet)
boa
cat
dog
>>> for pet in pets:
print(pet, end=', ')
boa, cat, dog,
>>> for pet in pets:
print(pet, end='!!! ')
boa!!! cat!!! dog!!!
but what about sep? i tried to replace end by sep but nothing happened but i know that sep is used to separete while printing, how and when can i use sep? what are the differences between sep and end?
Upvotes: 6
Views: 24881
Reputation: 967
In array variable instead of sep you can use join
pets = ['boa', 'cat', 'dog']
res=",".join(pets)
print(res)
Output
boa,cat,dog
Upvotes: 0
Reputation: 11
sep='' and end='' are two different thing. ignore space and make variable as a single string.. like: a b
-->ab
But end=''
make a b
-->a b
see the below example.
for sep=' '
from itertools import permutations
s,k = input().split()
for i in list(permutations(sorted(s), int(k))):
print(*i,sep='')
''' output for sep='':
HACK 2
AC
AH
AK
CA
CH
CK
HA
HC
HK
KA
KC
KH
'''
for end=' '
from itertools import permutations
s, k = input().split()
for i in list(permutations(sorted(s), int(k))):
print(*i, end='')
'''
HACK 2
A CA HA KC AC HC KH AH CH KK AK CK H
Process finished with exit code 0
'''
Upvotes: 0
Reputation: 56230
The print function uses sep
to separate the arguments, and end
after the last argument. Your example was confusing because you only gave it one argument. This example might be clearer:
>>> print('boa', 'cat', 'dog', sep=', ', end='!!!\n')
boa, cat, dog!!!
Of course, sep
and end
only work in Python 3's print function. For Python 2, the following is equivalent.
>>> print ', '.join(['boa', 'cat', 'dog']) + '!!!'
boa, cat, dog!!!
You can also use a backported version of the print function in Python 2:
>>> from __future__ import print_function
>>> print('boa', 'cat', 'dog', sep=', ', end='!!!\n')
boa, cat, dog!!!
Upvotes: 12
Reputation: 13857
The following two are equivalent:
print(*array, sep='abc')
print('abc'.join(str(x) for x in array))
Upvotes: 1