Печатать без пробела в python 3

Я новичок в Python, и мне интересно, как напечатать несколько значений без добавления дополнительного пробела между ними. Мне нужен вывод ab, а не a b без двойного вызова print:

print("a", end="")
print("b")

Кроме того, у меня есть следующий код:

a = 42
b = 84 

и я хочу напечатать их значения как a = 42, b = 84, но если я это сделаю

print("a = ", a, ", ", b = ", b)

добавляются дополнительные пробелы (выводит a = 42 , b = 84)

В то время как стиль Java,

print("a = " + a + ", b = " + b)

поднимает TypeError.


person Blrp    schedule 03.10.2012    source источник


Ответы (6)


Вы можете использовать параметр sep, чтобы избавиться от пробелов:

>>> print("a","b","c")
a b c
>>> print("a","b","c",sep="")
abc

Я не знаю, что вы подразумеваете под «стилем Java»; в Python вы не можете добавлять строки к (скажем) целым числам таким образом, хотя, если a и b являются строками, это будет работать. Конечно, у вас есть несколько других вариантов:

>>> print("a = ", a, ", b = ", b, sep="") 
a = 2, b = 3
>>> print("a = " + str(a) + ", b = " + str(b))
a = 2, b = 3
>>> print("a = {}, b = {}".format(a,b))
a = 2, b = 3
>>> print(f"a = {a}, b = {b}")
a = 2, b = 3

Для последнего требуется Python 3.6 или новее. Для более ранних версий можно сымитировать тот же эффект (хотя в целом я этого делать не рекомендую, иногда бывает удобно и нет смысла притворяться, что иначе):

>>> print("a = {a}, b = {b}".format(**locals()))
a = 2, b = 3
>>> print("b = {b}, a = {a}".format(**locals()))
b = 3, a = 2
person DSM    schedule 03.10.2012

Фактический синтаксис функции print() таков:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Вы можете видеть, что у него есть аргумент sep со значением по умолчанию ' '. Вот почему пробел вставляется между ними.

print("United","States")            #Output: United States
print("United","States",sep="")     #Output: UnitedStates
person Siva Prakash    schedule 04.07.2019

Вы также можете использовать

print("%d%d" %(a,b))

чтобы напечатать a и b, не разделенные пробелами, в виде форматированной строки. Это похоже на то, что в c.

person RISHABH KALAKOTI    schedule 26.09.2017

print() автоматически сделает пробелы между аргументами.

>>> print("a", "b", "c")
a b c

Чтобы лучше контролировать интервалы, вы можете использовать форматирование строк:

>>> v0, v1, v2 = "a", "b", "c"
>>> print("%s%s%s" % (v0, v1, v2))
abc
>>> print("%s%s%s".format(v0, v1, v2)
abc
>>> print(f"{v0}{v1}{v2}")
abc

Мне нравится это руководство на эту тему: https://realpython.com/python-f-strings/< /а>

person aude    schedule 19.11.2019

Чтобы разделить строки или значения, вы можете использовать параметр sep в print().

print(a,b,sep='')
person kavitha    schedule 27.11.2020

На этой странице нужно распечатать обычный текст и в конце использовать sep="".

Итак, команда

print("Hole", hole, "Par", par, sep="")

даст

"Hole1Par4"

предполагая, что hole==1 и par==4.

person eyelesscactus54    schedule 07.11.2015