144

今日プログラミングを始めましたが、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です

したがって、印刷行内の (x) を数値として Python に認識させる必要があります。または、2 つの別々のものを同じ行に印刷します。事前に感謝し、そのようなばかげた質問を申し訳ありません.

重要な注意:バージョン 2.5.4を使用しています

別の注意:print "Thing" , print "Thing2"2番目の印刷に「構文エラー」と表示されます。

4

5 に答える 5

195

Python 3.x では、関数にend引数を使用して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 の print 関数にアクセスするか、 を使用しますsys.stdout.write()

于 2012-06-29T17:10:44.127 に答える
122

Python 2.x では、ステートメント,の最後にa を追加するだけです。項目間にprint入る空白を避けたい場合は、 を使用します。printsys.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

sepPython 3.x で print に設定して、隣接する文字列をどのように分離するかを制御できる (または に割り当てられた値に依存しないsep)というパラメーターもあります。

例えば、

Python 2.x

print 'hi', 'there'

与える

hi there

Python 3.x

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

与える

hithere
于 2012-06-29T17:18:04.533 に答える
24

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

from __future__ import print_function

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

結果は

abcdefg

3.x を使用している場合、これは既に組み込まれています。

于 2012-06-29T17:18:07.763 に答える
12

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

print 'lakjdfljsdf', # trailing comma

ただし、次の場合:

print 'lkajdlfjasd', 'ljkadfljasf'

暗黙の空白 (つまり' ') があります。

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

import sys
sys.stdout.write('some data here without a new line')
于 2012-06-29T17:16:08.013 に答える
5

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

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

演算子 (モジュロ)を使用して、文字列の書式設定に関する追加のドキュメントにアクセスできます。%

于 2012-06-29T17:11:52.857 に答える