Python: избегайте новой строки с командой печати [дубликат]
этот вопрос уже есть ответ здесь:
- как печатать без новой строки или пробелом? 25 ответов
Я начал программировать сегодня и эта проблема с Python. Это довольно глупо, но я не могу понять, как это сделать. Когда я использую команду печати, она печатает все, что я хочу, а затем переходит к другому линия. Например:
print "this should be"; print "on the same line"
должна возвращать:
это должно быть на одной строке
но вместо этого возвращает:
это должно быть
на той же линии
точнее я пытался создать программу с if
это сказало мне, было ли число 2 или нет
def test2(x):
if x == 2:
print "Yeah bro, that's tottaly a two"
else:
print "Nope, that is not a two. That is a (x)"
но он не распознает последний (x)
как введенное значение, а точнее печатает точно: "x)" (буква в скобках). Чтобы заставить его работать, я должен написать:
print "Nope, that is not a two. That is a"; print (x)
и если, например, я вхожу test2(3)
что дает:
нет, это не двойка, это
3
поэтому либо мне нужно заставить Python распознавать мой (x) внутри строки печати как число; или печатать две отдельные вещи, но на одной строке. Спасибо заранее и извините за такой глупый вопрос.
ВАЖНОЕ ПРИМЕЧАНИЕ: я используя версия 2.5.4
еще одно примечание: Если я поставлю print "Thing" , print "Thing2"
он говорит "синтаксическая ошибка" на 2-й печати.
5 ответов:
на Python 3.x можно использовать до
print()
функция для предотвращения печати символа новой строки:print("Nope, that is not a two. That is a", end="")
на Python 2.x, вы можете использовать трейлинг-запятая:
print "this should be", print "on the same line"
вам не нужно, это просто распечатать переменную, хотя:
print "Nope, that is not a two. That is a", x
обратите внимание, что конечная запятая все еще приводит к тому, что в конце строки печатается пробел, т. е. это эквивалентно использованию
end=" "
в Python 3. Чтобы подавить пробел, а также, вы можете использоватьfrom __future__ import print_function
чтобы получить доступ к функции печати Python 3 или использовать
sys.stdout.write()
.
на Python 2.x просто поставить
,
в концеsys.stdout.write
.import sys sys.stdout.write('hi there') sys.stdout.write('Bob here.')
выходы:
hi thereBob here.
обратите внимание, что есть нет строки или пробел между двумя строками.
на Python 3.x С функция print (), вы можете просто скажи
print('this is a string', end="") print(' and this is on the same line')
и
this is a string and this is on the same line
есть также параметр под названием
sep
что вы можете установить на печати с Python 3.x для управления тем, как соседние строки будут разделены (или не в зависимости от значения, присвоенногоsep
)например,
Python 2.x
print 'hi', 'there'
дает
hi there
Python 3.x
print('hi', 'there', sep='')
дает
hithere
Если вы используете Python 2.5, это не будет работать, но для людей, использующих 2.6 или 2.7, попробуйте
from __future__ import print_function print("abcd", end='') print("efg")
результаты
abcdefg
для тех, кто использует 3.x, это уже встроенный.
вам просто нужно сделать:
в:print 'lakjdfljsdf', # trailing comma
print 'lkajdlfjasd', 'ljkadfljasf'
есть неявные пробелы (т. е.
' '
).у вас также есть возможность:
import sys sys.stdout.write('some data here without a new line')
используйте конечную запятую, чтобы предотвратить появление новой строки:
print "this should be"; print "on the same line"
должно быть:
print "this should be", "on the same line"
кроме того, вы можете просто прикрепить переменную, передаваемую в конец нужной строки:
print "Nope, that is not a two. That is a", x
вы также можете использовать:
print "Nope, that is not a two. That is a %d" % x #assuming x is always an int
вы можете получить доступ к дополнительным документация что касается форматирования строк с использованием
%
оператор (по модулю).