Pythonにおける計算のルールを問題を解きながら確認していきます。
いきなり問題に入りますので、分からない問題は解答と解説を見て確認していきましょう!
また、YouTubeにて、Pythonチュートリアル(公式ドキュメント)を使ってPythonの基礎文法を解説しています。
体系的に学ぶことができますのでこちらもよろしければご活用ください。
勉強法をまとめた記事はこちら
問題1(括弧を含む計算はどうなる)
次のコードの出力結果を選択肢から選んでください。
(4 + 3) * 2 - 5
➀ 5
➁ 44
➂ -21
➃ 9
解答
➃ 9演算子の優先順位は、算数・数学と同じで問題ありません。また、括弧()で囲むとその部分が先に計算されるのも同じです。
優先順位についてより詳しく知りたい方はこちらをご確認下さい。
https://docs.python.org/ja/3/reference/expressions.html#operator-precedence
問題2(割り算の出力結果は?)
次のコードの出力結果を選択肢から選んでください。
10 / 2
➀ 5
➁ 5.0
➂ 0
➃ 8
解答
➁ 5.0Pythonには整数を扱うint型と小数を扱うfloat型というものが存在します。
割り算を実行する場合、答えが整数であってもfloat型になるので注意をしましょう。
問題3(整数と小数が存在する場合)
次のコードの出力結果を選択肢から選んでください。
4 * 2.5 - 1
➀ 10.0
➁ 6
➂ 9
➃ 9.0
解答
➃ 9.0型が混在する場合もfloat型になりますのでご注意ください。
問題4(//は何を出力する?)
次のコードの出力結果を選択肢から選んでください。
9 // 2
➀ 1
➁ 4
➂ 4.5
➃ 5
解答
➁ 4//演算子は割り算の整数部分のみを出力します。小数部分が要らない場合は、/ ではなく // を使いましょう。
問題5(%は何を出力する?)
次のコードの出力結果を選択肢から選んでください。
14 % 4
➀ 2
➁ 3
➂ 4
➃ 5
解答
➀ 2%演算子は割り算の剰余を出力します。14 ÷ 4 = 3 あまり 2 となりますので、答えは2となります。
問題6(**は何を出力する?)
次のコードの出力結果を選択肢から選んでください。
2 ** 4
➀ 4
➁ 8
➂ 12
➃ 16
解答
➃ 16**演算子はべき乗の計算ができます。2 × 2 × 2 × 2 = 16 となります。
問題7(変数の計算)
次のコードの出力結果を選択肢から選んでください。
a = 17
b = 4
result = (a - 2 * b) / 3
print(result)
➀ 20.0
➁ 3.0
➂ 20
➃ 3
解答
➁ 3.0Pythonは変数の計算も可能です。(17 - 2 * 4) / 3 = 3.0 となります。
問題8(文字列の計算)
次のコードの出力結果を選択肢から選んでください。
a = 'Pen' + 3 * 'Pine' + 'Apple'
print(a)
➀ エラーになる。
➁ PenPinePinePineApple
➂ PenPineApple
➃ Pen3PineApple
解答
➁ PenPinePinePineApple文字列の計算も可能です。+演算子で連結、 *演算子で繰り返しになります。
問題9(アンダースコアの役割)
次のコードの出力結果を選択肢から選んでください。
>>> tax = 10 / 100
>>> price = 100
>>> price * tax
10.0
>>> price + _
➀ エラーになる。
➁ 110
➂ 100_
➃ 110.0
解答
➃ 110.0対話モード(入力したコードをすぐに実行することができるモード)では、最後に表示した式が_(アンダースコア)に代入してあります。
よって、100 + 10.0 で110.0となります。
アンダースコアには代入しないようにしましょう。NG : _ = 5
問題10(複素数の計算)
次のコードの出力結果を選択肢から選んでください。
J = (3 + 5j) * (3 - 5j)
print(J)
➀ 34
➁ 34.0
➂ (34+0j)
➃ (9-25j^2)
解答
➂ (34+0j)Pythonは複素数を扱うことができます。虚数単位は j で表します。
虚部が1の場合は 1j と明示的に1を記述する必要があります。
おまけ
分数表記ができる
標準ライブラリfractionsモジュールを使うと、分数を扱うことができます。
分子と分母を指定
from fractions import Fraction
f=Fraction(1, 3)
print(f)
1/3
小数を分数へ変換
print(Fraction(0.25))
1/4
小数の計算はズレが生じる。
float型は2進数によって計算されており、10進数で出力する際に上手く変換ができない場合があります。
よって、以下のような計算を行うとズレが生じるのです。
d1 = 0.1
d2 = 0.2
print(d1 + d2)
0.30000000000000004
これに対してdecimalモジュールを使うと正確に計算ができます
from decimal import Decimal
d1 = Decimal('0.1')
d2 = Decimal('0.2')
print(d1 + d2)
0.3
おわりに
計算のルールをまとめました。
とりあえずは今回出てきた演算子を自由に使いこなせれば問題ないと思います!
演算子まとめ
足し算 : +演算子
引き算 : -演算子
掛け算 : *演算子
割り算 : /演算子
割り算の整数部 : //演算子
割り算の剰余 : %演算子
べき乗 : **演算子
YouTubeでも解説をしています。良ければ活用してね!
出典
公式ドキュメント https://docs.python.org/ja/3/tutorial/introduction.html