Печать без пробела в 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)
вызывает a TypeError
.
Ответы
Ответ 1
Вы можете использовать параметр 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
Ответ 2
Вы также можете использовать
print("%d%d" %(a,b))
для печати a и b, не разделенных пробелами в форме форматированной строки. Это похоже на то, что указано в c.
Ответ 3
Фактический синтаксис функции print()
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
Вы можете видеть, что у него есть arg sep
со значением по умолчанию ' '
. Вот почему пространство вставляется между ними.
print("United","States") #Output: United States
print("United","States",sep="") #Output: UnitedStates
Ответ 4
На на этой странице ответ должен напечатать ваш обычный текст и в конце использовать
sep=""
.
Итак, команда
print("Hole", hole, "Par", par, sep="")
даст
"Hole1Par4"
предполагая, что hole==1
и par==4
.