2010-04-12 39 views
21

Sonunda yeni bir satır olmaksızın konsola metin nasıl çıktı verebilirim?Yeni satır olmadan çıktı

print 'temp1' 
print 'temp2' 

çıktı: örneğin

temp1 
temp2 

Ve gerekir:

temp1temp2 

cevap

27

son argüman sonra virgül ekleyin:

print 'temp1', 
print 'temp2' 

Alternatif Çağrı sys.stdout.write:

import sys 
sys.stdout.write("Some output") 
+5

Virgül, dizeler arasında hala bir boşluk açacaktır. –

5

bu deneyin:

print 'temp1', 
print 'temp2' 
+0

İki saniye içinde beni yendi ... :( – SLaks

+1

Virgül hala dizeler arasında bir boşluk tanıtacaktır. –

+3

Bunun, test1 ile test2 arasında hala bir boşluk kalacağını unutmayın, OP'nin ihtiyaç duyduğu şey bu değildi. – jemfinch

4

birden çok yolu vardır, fakat her zamanki seçim sys.stdout.write() kullanmaktır - print aksine - baskılar ne istediğinizi tam olarak. Python 3.x'te (veya from __future__ import print_function ile Python 2.6'da) print(s, end='', sep='')'u da kullanabilirsiniz, ancak bu noktada sys.stdout.write() muhtemelen daha kolaydır.

diğer bir yolu, tek bir dize oluşturmak ve yazdırmak olacağını:

>>> print "%s%s" % ('temp1', 'temp2') 

Ama bu tabii ki her zaman arzu edilmez her iki dizeleri, bilene kadar yazı ile beklemek gerektirir ve bu sahip olmak demektir bellekte tüm dizeyi Python

+0

sys.stdout.write() ayrıca çıktıya karakter sayısını ekler gibi görünüyor. sys.stdout.write ("test") test4'ü yazdırır. Bunu neden yapıyor ve nasıl durduracağım? – Tom

22

> 2.6 ve Python 3 (büyük dizeleri, bir sorun olabilir.):

from __future__ import print_function 

print('temp1', end='') 
print('temp2', end='') 
-1

012 deneyin
print 'temp1', 
print '\btemp2'