2016-11-10 5 views
0

ここでかなり簡単な質問です。私は変数を使用せずに名前を入力すると、ユーザーにこんにちはと言うhello worldプログラムの例を構築していました。私は入力がprintステートメント内にネストされています

print('What is your name?') 

print('Hello, ' +str(input()) + ', nice to meet you!') 

です。この結果、望ましい結果が得られます。なぜ入力文はその中にネストされているにもかかわらずprint文の前に `'を実行しますか?ありがとう!

+2

なぜ内部にネストされていると後で実行されると思いますか? 'input'がまだ実行されていなければ' print'が何を出力すると思いますか? – BrenBarn

+0

数学と同様に、角括弧の中のものは、それらの外側のものより前に評価されるためです。 – Carcigenicate

答えて

2

私はあなたが演算子の優先順位を認識していないと思います。 +演算子を使用しています。

print('Hello, ' +str(input()) + ', nice to meet you!') 

ここでは、印刷が実行される前に、異なるオペランド表現が準備されています。 str(input())は関数式であるため、文字列の連結が行われるためには最初に評価されなければなりません。

factorial(sum(2,3))などのシナリオでは、sum(2,3)が最初に実行されるため、factorial(5)になります。要するに、大部分の内側の式は最初に左から右に評価されるという経験則です。

2
3 * (2 + 2) 

答えは何でしょうか?角括弧内の部分が最初に評価されるため、12です。

プログラミングでも同じです。括弧の外のものは括弧内のものに依存するため、括弧内のものが最初に評価されます。

関連する問題