Python: unikaj nowej linii poleceniem print [duplicate]

To pytanie ma już odpowiedź tutaj:

Zacząłem dziś programować i mam taki problem z Pythonem. To dość głupie, ale nie wiem, jak to zrobić. Kiedy używam polecenia Drukuj, drukuje to, co chcę, a następnie przechodzi do innej linii. Na przykład:

print "this should be"; print "on the same line"

Powinien zwrócić:

To powinno być na tej samej linii

Ale zamiast tego zwraca:

To powinno być
na tej samej linii

Dokładniej próbowałem stworzyć program z if który powiedział mi, czy liczba jest 2 czy nie

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)"

Ale nie rozpoznaje ostatniej (x) jako wprowadzonej wartości, a raczej wypisuje dokładnie: "(x) " (litera z nawiasami). Żeby się udało muszę napisz:

print "Nope, that is not a two. That is a"; print (x)

A jeśli np. wpiszę {[5] } to daje:

Nie, to nie jest dwójka, to jest
3

Więc albo muszę sprawić, by Python rozpoznał moje (x) w linii wydruku jako liczbę; albo wydrukować dwie różne rzeczy, ale w tej samej linii. Z góry dzięki i przepraszam za takie głupie pytanie.

WAŻNA UWAGA: używam wersji 2.5.4

Kolejna uwaga: jeśli wpiszę {[6] } na 2-gim piszą "błąd składni" Drukuj.

Author: Ghost4Man, 2012-06-29

5 answers

W Python 3.x , możesz użyć argumentu end do funkcji print(), aby zapobiec wypisaniu znaku nowej linii:

print("Nope, that is not a two. That is a", end="")

W Python 2.x, możesz użyć końcowego przecinka:

print "this should be",
print "on the same line"

Nie potrzebujesz tego, aby po prostu wydrukować zmienną:

print "Nope, that is not a two. That is a", x

Zauważ, że końcowy przecinek nadal powoduje wydrukowanie spacji na końcu wiersza, tzn. jest to równoważne użyciu end=" " w Pythonie 3. Aby stłumić znak spacji, można albo użyć

from __future__ import print_function

Aby uzyskać dostęp do funkcji drukowania Pythona 3 lub użyj sys.stdout.write().

 165
Author: Sven Marnach,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-28 08:46:11

W Python 2.x po prostu umieść , na końcu twojego print Oświadczenia. Jeśli chcesz uniknąć spacji, która print umieszcza pomiędzy elementami, użyj sys.stdout.write.

import sys

sys.stdout.write('hi there')
sys.stdout.write('Bob here.')

hi thereBob here.

Zauważ, że nie ma żadnej nowej linii ani pustej spacji pomiędzy tymi dwoma łańcuchami.

W Python 3.x, za pomocą funkcji print () , możesz po prostu powiedzieć

print('this is a string', end="")
print(' and this is on the same line')

I uzyskać:

this is a string and this is on the same line

Istnieje również parametr o nazwie sep, który możesz ustawić drukowanie za pomocą Pythona 3.x, aby kontrolować, jak sąsiadujące ciągi znaków będą rozdzielane (lub nie w zależności od wartości przypisanej do sep)

Np.,

Python 2.x

print 'hi', 'there'

Daje

hi there

Python 3.x

print('hi', 'there', sep='')

Daje

hithere
 117
Author: Levon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-29 17:46:41

Jeśli używasz Pythona 2.5, to nie zadziała, ale dla osób korzystających z 2.6 lub 2.7, spróbuj

from __future__ import print_function

print("abcd", end='')
print("efg")

Wyniki w

abcdefg

Dla tych, którzy używają 3.x, to jest już wbudowane.

 23
Author: Hugh Bothwell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-29 17:18:07

Po prostu musisz zrobić:

print 'lakjdfljsdf', # trailing comma

Jednak w:

print 'lkajdlfjasd', 'ljkadfljasf'

Istnieje domyślna spacja (ie ' ').

Masz również możliwość:

import sys
sys.stdout.write('some data here without a new line')
 10
Author: Jon Clements,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-29 17:16:08

Użyj końcowego przecinka, aby zapobiec prezentacji nowej linii:

print "this should be"; print "on the same line"

Powinno być:

print "this should be", "on the same line"

Dodatkowo można po prostu dołączyć zmienną przekazywaną na koniec żądanego ciągu przez:

print "Nope, that is not a two. That is a", x

Możesz również użyć:

print "Nope, that is not a two. That is a %d" % x #assuming x is always an int

Możesz uzyskać dostęp do dodatkowej dokumentacji dotyczącej formatowania łańcuchów przy użyciu operatora % (modulo).

 5
Author: RobB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-29 17:17:59