【Python入門】第3回 式と演算子

こんにちは
けいぞうです。

前回の記事は⇩です。

今回のテーマは「式と演算子」です。

数値の足し算

前回のテーマ「変数」で、
変数には文字列数値といった種類の型があることを説明しました。

演算子の利用例として最も分かりやすいのが、
数値と数値を足したり引いたりする演算、いわゆる足し算引き算です。

例えば、以下のようなコードを書いて実行してみてください。

print(1 + 2)

「3」と表示されましたよね。
1という数値と2という数値を加算するという演算が行われたからです。

実行結果

皆がよく知っている算数の「+」と同じように、プログラミングの世界でも
「+」は数値と数値の加算を行ってくれる演算子になるのです。

ちなみに、「+」や「-」で演算の対象となるもののことを「オペランド」と呼びます。
「1 + 1 = 2」 の場合は12オペランドですね。

演算子の種類

算術演算子

「+」のようにオペランド同士を足したり引いたりして計算させる演算子を
算術演算子と言います。

プログラミングで使う算術演算子は「+」以外にもたくさんあります。
以下にPythonで使用できる演算子をまとめました。

演算子意味
+足し算
引き算
*掛け算
/割り算
//割り算( 小数点以下は切り捨て )
%割り算のあまり(モジュロ演算)
**べき乗

足し算、引き算、掛け算、割り算は
よく知っている算数で使う演算しと同じ使い方ですね。

//「%」「**」は、算数ではあまり見かけないと思います。

ぞれぞれの演算子を使った例を以下に示します。

ソースコード

実行結果

文字列結合

演算子を数値ではなく文字列に対して使用することもできます。
代表的な使い方は文字列結合です。

2つ以上の文字列をくっつけて、1つの文字列にするというものです。

Pythonでは、文字列の結合に「+」を使います。

a = ‘チキンカツ’
b = ‘カレー’
print(a + b)
——————
チキンカツカレー

「+」は数値の場合は足し算文字列の場合は結合と、
オペランドの型によって挙動が変わるため、扱いには注意が必要です。

例えば以下のように、同じ「1 + 1」でも結果が異なります。

a = ‘1’
b = 1
print(a + a)
print(b + b)
————-
11
2

もし、文字列として代入されているaの1を、数値として扱いたい場合は、
以下のようにint関数を使って数値型に変換する必要があります。

a = ‘1’
print(int(a)+ int(a))
———————
2

反対に、文字列に変換したい場合str関数を使用します。

代入演算子

前回のテーマ「変数」で、
「=」を使って文字列や数値を変数に代入して使用する例がありました。

この「=」のように、変数に文字列や数値を代入する際に使用する演算子のことを
代入演算子と言います。

以下に、Pythonで使用できる代入演算子をまとめました。

演算子説明
=代入
+=足して代入
-=引いて代入
*=掛けて代入
/=割って代入
//=割って代入(小数点以下切り捨て)
%=割った余りを代入
**=べき乗して代入

例えば、以下のように書いた場合

a += 1

aに1を足した値をaに代入」という意味になります。
以下のように書き換えられることが出来ます。

a = a + 1

例を以下に示します。

ソースコード

実行結果

比較演算子

前回のテーマ「変数」で、
真偽値(Boolean)」という型の変数について説明しました。

比較演算子は、2つの変数を比較した結果が真(True)なのか偽(False)なのかを返す演算子です。

例えば、1は2より小さいので「1 < 2」は真(True)です。
逆に「1 > 2」は偽(False)となります。

このように、2つの値を比較した結果が正しいかどうかを返す比較演算子がいくつかあります。以下にPythonで使用できる演算子をまとめました。

演算子意味
==左右のオペランドが等しい
!= 左右のオペランドが等しくない
<左のオペランドの方が右より小さい
>左のオペランドの方が右より大きい
<=左のオペランドが右以下
>=左のオペランドが右以上

以下に例を示します。

ソースコード

実行結果

インクリメントやデクリメントについて

Python以外のプログラミング言語を経験したことある方は、
以下のような演算子を知っていると思います。

a++

これはインクリメントと言って、
簡単に説明すると、aに1をプラスするという意味になります。

しかし、この記述方法はPythonではできません。

Pythonの設計思想として「文法をシンプルにする」というものがあるようで、
1つのやりたいことに対して、なるべく色々な書き方ができないようになっているようです。

今回のインクリメントもそれに該当します。

aに1を足したければ「a += 1」と書けばいいので、「a++」という書き方は用意されていないということのようですね。

練習問題

問題1

3つの数値を入力させ、その合計を表示するプログラムを作りましょう。

問題2

三角形の底辺の長さと高さを入力させ、その面積を表示するプログラムを作りましょう
※三角形の面積の求め方は[底辺 × 高さ ÷ 2]

答え1

a = input('1つ目の数値を入力してください:')
b = input('2つ目の数値を入力してください:')
c = input('3つ目の数値を入力してください:')
print(int(a) + int(b) + int(c))

実行結果

答え2

print('三角形の面積を計算します。')
a = input('底辺の長さを入力してください:')
b = input('高さを入力してください:')
sum = int(a) * int(b) / 2
print('三角形の面積は' + str(sum) + 'です。')

実行結果


ここまで読んでくださりありがとうございます。
質問、疑問、上手くいかない等がある方はコメントにお願いします。

次回、第4回は「場合分けの処理」です。

⇩オススメのPython入門書です⇩

スッキリわかるPython入門 (スッキリシリーズ)