Python: избегайте новой строки с командой печати [дубликат]


этот вопрос уже есть ответ здесь:

Я начал программировать сегодня и эта проблема с 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 113

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 просто поставить , в конце print заявление. Если вы хотите избежать пустое пространство, что print ставит между элементами, используйте 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

вы можете получить доступ к дополнительным документация что касается форматирования строк с использованием % оператор (по модулю).