3

質問1:

word = 'fast'

print '"',word,'" is nice'として出力を与えます" fast " is nice

出力を取得するにはどうすればよいですか。"fast" is niceつまり、前後のスペースを削除したいwordですか?

質問2:

def faultyPrint():
    print 'nice'

print 'Word is', faultyPrint()次のような出力が得られます

Word is nice
None

出力を asWord is niceおよびNoneremove したい。

からの出力は必要ありません

print 'Word is'
faultyPrint()

それは私に出力を与えるので

Word is
nice

関数を変更せずに同じ出力形式を維持するにはどうすればよいですか?

4

5 に答える 5

9

より拡張可能なアプローチは次のようになります。

最初の部分:

word = "fast"
print('"{0}" is nice'.format(word))

(角かっこについて: 引数を 1 つだけ渡す場合、違いはなく、ほとんどの場合、無料で python3 との互換性が得られます)

この詳細については、Python 文字列の書式設定構文(例はこちら) を参照してください。

2 番目の部分:

関数にパッチを適用せずにこれを修正する唯一の方法は、印刷の最後に改行を作成しないことです。

print "Word is", 
faultyPrint()

Python3 の上位互換性を維持したい場合は、次のことを行う必要があります。

from __future__ import print_function  #put that at the head of your file
print("Word is ", end="")
faultyPrint()

((明らかではない) 違いに注意してください: Python3 では、文字列の末尾にスペースが必要です)

一般的には、出力する値を、できれば最も適切なデータ型として返す方がより適切です (つまり、リストではなく",".join(foo)、リストを返し、最も外側の関数で結合を行います)。これにより、再利用性が向上し、ロジックとプレゼンテーションが分離されます。

于 2012-10-27T11:41:13.167 に答える
3

文字列を結合するの+ではなく使用する,

print '"' + word + '"'

2番目の質問に関して。関数は を返しNoneます。それが印刷されているものです。

于 2012-10-27T11:33:14.140 に答える
2

これはおそらくあなたが探しているものです:

print 'Word is',     #Notice the trailing comma. This will not print a newline char
faultyPrint()
于 2012-10-27T11:37:25.587 に答える
2

Q1:

コンマを使用すると、印刷しようとしている要素の間に自動的に余分なスペースができます。

>>> print "A","B","C"
A B C

プラスを使用すると、余分なスペースは取得されません。

>>> print "A"+"B"+"C"
ABC

Q2:

同じ行に、定数文字列を出力し、その後に関数から何かを出力したいと思います。これは、いくつかの方法で行うことができます。

最初の方法:これは、関数の戻り値を使用して行う方法です:

def faultyPrint():
    return 'nice'

>>> print 'Word is', faultyPrint()  # Prints 'Word is', and return value of function
Word is nice

注: Python で関数の戻り値を指定しない場合、戻り値は None になります。これが、出力に None が含まれている理由です。

2 番目の方法: 関数に return ステートメントを書くことを本当に避けたくない場合。(ただし、この場合も関数は実際には None を返します)

def faultyPrint():
    print 'nice'   # prints nice and newline

print 'Word is',   # Adding comma to end of print won't add newline
faultyPrint()      # Normal function call, prints nice and newline
于 2012-10-27T11:58:05.423 に答える
0
def faultyPrint():
    print 'nice'
    return ""
于 2012-10-27T11:34:36.890 に答える