web-dev-qa-db-ja.com

Python:printコマンドで改行を避ける

私は今日プログラミングを始めましたが、Pythonにはこの問題があります。それはかなり愚かですが、私はそれを行う方法を理解することはできません。 printコマンドを使用すると、必要なものが印刷されてから別の行に移動します。例えば:

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)と入力します。

いや、それは2つではない、それは
3

ですから私はPythonに印刷行の中のmy(x)を数字として認識させる必要があります。または同じ行に2つの別々のものを印刷します。このような愚かな質問を前もってありがとうございます。

重要な注意事項バージョン2.5.4を使っています

もう一つの注意:私がprint "Thing" , print "Thing2"を入れるならば、それは2番目の印刷に「構文エラー」を言います。

127
Javicobos

Python 3.xでは、print()関数にend引数を使用して、改行文字が表示されないようにすることができます。

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

末尾のカンマでも行末にスペースが表示されることに注意してください。つまり、Python 3でend=" "を使用するのと同じです。スペース文字を抑制するには、次のいずれかを使用できます。

from __future__ import print_function

python 3のprint関数にアクセスするか、sys.stdout.write()を使用します。

176
Sven Marnach

Python 2.xでは、printステートメントの最後に,を追加するだけです。 printが項目間に置く空白を避けたい場合は、sys.stdout.writeを使用してください。

import sys

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

収量:

hi thereBob here.

2つの文字列の間に改行または空白スペースがないことに注意してください。

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
119
Levon

Python 2.5を使用している場合、これは機能しませんが、2.6または2.7を使用している人々のために、試してみてください

from __future__ import print_function

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

になります

abcdefg

3.xを使っている人のために、これはすでに組み込まれています。

23
Hugh Bothwell

あなたは単にする必要があります:

print 'lakjdfljsdf', # trailing comma

しかし:

print 'lkajdlfjasd', 'ljkadfljasf'

暗黙の空白(すなわち' ')があります。

以下のオプションもあります。

import sys
sys.stdout.write('some data here without a new line')
10
Jon Clements

新しい行が表示されないように末尾のカンマを使用します。

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

%演算子(modulo)を使用して、文字列のフォーマットに関する追加の ドキュメント にアクセスできます。

5
RobB