2017-09-07 1 views
0

何ですか:Pythonは+機能(I)の背後にあるロジックコードの次のブロックで+

print('My name is') 
for i in range(5): 
    print('Jimmy Five Times (' + str(i) + ')') 

が、私はコードが実行されることを理解して5回I = 0〜4

しかし、str()関数の前後に追加された+演算子の背後にあるロジックについては分かりません。

この+ function()+は他のシナリオにどのように適用できますか?

+0

文字列連結 – C8H10N4O2

+0

'関数は、()'常に*第1の値に評価され、その後オペレータが適用されるからです。 'str'は' str'を返すか、エラーを投げます。文字列間の '+ '演算子*を連結します。だから '' hello "+" world "' –

答えて

2

str(i)iの文字列表現です。 Documentation

オブジェクトのstrバージョンを返します。

abcは文字列である場合には、a + b + cは彼らの連結の結果の文字列です。

したがって、i04intされた状態で、3言う、'Jimmy Five Times (' + str(i) + ')'はfolowing列である:Pythonで

'Jimmy Five Times (3)' 
+0

を試してみてください。これはPythonで文字列をフォーマットする最良の方法ではないと付け加えたいと思います。これは、それを記述するJavaスタイルの悪い方法です。 –

+0

@ Jean-FrançoisFabreところで、Python 3.6のフォーマットについてどう思いますか?私は個人的にはそれほど好きではありませんが、短い文字列を除いて、私はむしろ汚れています。 –

+0

'f'文字列ですか?まあ、私はうーん、私たちは仕事でこのバージョンを持っていない。 3.5で停止し、2.7の互換性が必要です。だから私はそれを掘り起こすまでに時間がかかります。しかし、私は 'str.format'をすべて採用しました。十分に強力です。 –

0

は、+は、文字列contateために使用されます。 すなわち:

data1 = "Hello" 
data2 = "World" 

print(data1+data2) 

出力は次のようになります。

HelloWorld 
0

strので、iの文字列表現を返す関数です:

print('My name is') 
for i in range(5): 
    print('Jimmy Five Times (' + str(i) + ')') 
# => 'Jimmy Fine Times (0)' 
# => 'Jimmy Fine Times (1)' 
# => 'Jimmy Fine Times (... 

は、文字列を返す関数を呼び出します文字列連結'A' + func() + 'B'の中では、関数呼び出しが関数によって返された文字列で置き換えられます(erro Rまたは例外隆起した)、例えば:

def getName(): 
    name=input('Enter name: ') 
    return name 

print('Hello '+getName()+', Welcome to StackOverflow.') 

#In: Enter name: Jack 
#Out: Hello Jack, Welcome to StackOverflow. 
関連する問題