2

Pythonでは、これを単純に行うことはできないことを私は知っています:

number = 1
print "hello number " + number

あなたはこれをしなければなりません:

print "hello number " + str(number)

そうしないと、エラーが発生します。

私の質問は、Python は非常にコンパクトな言語であり、整数から文字列への自動キャスト/変換のこの機能は、他の多くの言語で利用できるため、str()毎回関数を使用する必要がなくなるのではないでしょうか? あいまいなインポート、または単にそれを行う別の方法はありますか?

編集:私が別の言い方をするとき、私はそれを書くためのより単純でよりコンパクトな方法を意味します。formatしたがって、たとえば、私は実際には考慮せず、代替案もありません。

ありがとう。

4

4 に答える 4

4

あなたは避けることができますstr()

print 'hello number {}'.format(number)

ともかく、

'abc' + 123

と同等です

'abc'.__add__(123)

また、文字列の__add__メソッドは文字列のみを受け入れます。

と同じように

123 + 'abc'

と同等です

(123).__add__('abc')

__add__整数のメソッドは、数値 (int/float) のみを受け入れます。

于 2013-03-12T15:17:15.050 に答える
4

文字列フォーマットoldを使用できます:

print "hello number %s" % number

または新しい:

print "hello number {}".format(number)
于 2013-03-12T15:18:00.980 に答える
2

私はよりコンパクトなフォーマットを使用する傾向があります

>>> print "one",1,"two",2
one 1 two 2

または、Python3では

>>> print("one",1,"two",2)
one 1 two 2

ただし、どちらのオプションも常に各引数の間にスペースを導入するため、提示されている他のソリューションのいくつかを使用する必要がある、より複雑な出力フォーマットには不適切であることに注意してください。

于 2013-03-12T17:20:16.040 に答える
1

この回答が説明しているように、強く型付けされているため、これは Python では発生しませんこれは、明示的に変換するように言われていない型を Python が変換しないことを意味します。

于 2013-03-12T15:19:14.313 に答える