2012-01-07 5 views
0

行使スクリプトは、正しいとするソリューション、差し引き?私は次のことを行う必要があるプログラムに取り組んでいます

は番号の入力をユーザーに要求するスクリプトを作成します。スクリプトはその番号に3を加えます。次に、結果を2倍し、4を減算し、元の数の2倍を減算し、3を加算して結果を出力します。ここで

私の最初のソリューションです:

#Prompt user for number 
number = input("Input a number ") 

#Add 3 to number 
print "Let's add 3" 
number1 = number + 3 
print number1 

#Multiply by 2 
print "Let's multiply by 2" 
number1 = number1 * 2 
print number1 

#Subtract 4 
print "Let's subtract 4" 
number1 = number1 - 4 
print number1 

#Subtract twice the original number 
print "Let's subtract the original number twice!" 
number2 = number + number 
number1 = number1 - number2 
print number1 

#Add 3 
print "...And finally, we add 3" 
number1 = number1 + 3 
print "Our sum is", number1 

正しいか、または、彼らは両方とも間違っている解決策:

#Prompt user for number 
number = input("Input a number") 

#Print out the solution 
print number + 3 * 2 - 4 - (number * 2) + 3 

そして、ここでは私の第二の溶液のですか?

私は、これは非常に基本的なものですけど、私はプログラムに勉強しています。このコードを書いている2つの異なる方法を試してみると思いました。

答えて

5

ちょうどそれを修正するために、あなたの最初のバージョンに括弧のペアを追加します。

print (number + 3) * 2 - 4 - (number * 2) + 3 

そうでない場合は、3 * 2は、加減算よりも高い優先順位で評価されるだろう。

出力は数値にまったく依存しないことに注意してください。式を単純化すると、上記のコードと同じことが示されます。

print 5 

+0

ありがとう、Sven Marnach。私はこれらのような表現を書くために優先順位をよりよく理解する必要があります。 –

+0

http://docs.python.org/reference/expressions.html#summary – RxS

0

2番目が正しいです。オペレータの優先順位を考慮しなかったため、最初のものは正しくありません。

関連する問題