Pythonで計算や比較をするときに使う演算子まとめています。
- 演算子にはどんな種類があるの?
- 計算の優先順位は?
- //、%の意味は?
などを解説しています。
演算子とは
- 算術演算子・比較演算子・論理演算子がある
- 数値の計算だけでなく文字列やリストの結合にも使える
- 学校の数学では使わない記号もあるので注意
演算子とは計算や比較、代入をするときに使う記号のことです。
数値計算のときに用いる記号を算術演算子、比較のときに使う記号を比較演算子と言います。
「等しい」は「==」と2個で表します。(比較演算子)
イコール(=)は代入演算子と言われ、変数に代入するときに使います。
また、and、or、notなどは論理演算子と言われます。
これを使うとより複雑な条件式を書くことができます。
言い換えると、より複雑なプログラムを書けるということです。
論理演算子については以下の記事でまとめています。
Pythonの比較演算子「and・or・not」の意味や使い方と優先順位を解説していきます。 if文やwhile文の条件文を書くときに使われるのが比較演算子ですが、それと合わせてこの「and・or・not」を使えるとより複雑な条件文[…]
算術演算子
算術演算子の種類
- 算術演算子は数値同士の計算に使う
- 割り算では余りの切り捨てや余りのみ求めることができる。
- 足し算とかけ算は文字列でもOK
- 文字列同士の足し算は連結
- 文字列*数値なら数値の回数繰り返して連結
算術演算子は四則計算(足す・引く・掛ける・割る)を行うときに使います。
そのほかにも累乗の計算や割り算のあまりだけを求める(剰余)方法などもあります。
足し算とかけ算は文字列でも実行できますが、それ以外の×のところはエラーになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
>>> 5 + 7 12 >>> 10 - 20 -10 >>> 123 * 456 56088 >>> 42 / 8 5.25 #小数で表示される >>> 42 // 8 5 #小数点以下の切り捨て >>> 42 % 8 2 #小数第一位を求める(剰余) >>> 2 ** 10 1024 #2の10乗 |
これらの演算子の計算は文字列にも使うことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
##足し算とかけ算はOK >>> 'Hello' + 'World' 'HelloWorld' >>> 'Hello' * 3 'HelloHelloHello' #3回繰り返される ##以下はエラーになります。 >>> 'Hello' - 'H' TypeError: unsupported operand type(s) for -: 'str' and 'str' >>> 'Hello' + 3 TypeError: can only concatenate str (not "int") to str |
TypeError: unsupported operand type(s) for -: 'str' and 'str'
とは- 文字列同士の引き算はできないよという意味です。
「サポートされていない」という言い方をするので「unsupported」があるわけですね。
TypeError: can only concatenate str (not "int") to str
とは- 「concatenate」は連結という意味です。つまり、文字列(str型)同士しか連結できないという意味になります。
int型やstr型などは難しく感じるかもしれませんが、
データの種類を表していると考えておきましょう。
クォーテーション「’」で挟むと文字として認識されます。
詳しくは以下の記事でまとめています。
プログラミングをする上でデータ型の話を避けて通ることはできません。 データ型を理解していないとエラーが大量発生してしまうかも。 今回はそんな超重要なデータ型を初心者向けにやさしく解説していきます。 データ型って何?データ[…]
計算の優先順位
- 算数の計算と同様の順番で計算する
- 計算の優先順位をPEMDASと表すことがある
小学校の算数でも習ったようにカッコの中から順番に計算します。
使えるのはカッコは丸カッコ()
のみで、角カッコ[]
や中カッコ{}
は使えません。
演算の頭文字をとって「PEMDAS」といわれることがあります。
- P:Parentheses(括弧の計算)
- E:Exponents(べき乗)
- M:Multiply(かけ算)
- D:Divide(割り算)
- A:Add (足し算)
- S:Subtract(引き算)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
>>> 2 * 3 - 8 -2 >>> 6- 15 / 5 3.0 >>> 6 - 15 // 5 3 >>> 2**3 + 4 / 4 9.0 >>> (2 + 3) * (7 - 9) -10 >>> 4 * (6 - (9 * 5 - 40)) 4 |
一番最後の問題を丁寧に計算すると以下のような手順になります。
- 4 * (6 – (9 * 5 – 40))
- 4 * (6 – (45- 40))
- 4 * (6 – 5)
- 4 * 1
- 4
どれだけ式がややこしくなっても、最も内側のカッコから計算することに変わりありません。
比較演算子の一覧
- 条件式の真(Ture)偽(False)を判定する
- 大小比較は同じデータ型でないと使えない
- 論理演算子と組み合わせて複雑な条件式を作れる
比較するときに使われる演算子です。
比較演算子の式が正しいときはTrue、間違い(偽と言います)のときはFalseになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
>>> 5 == 5 True >>> 5 != 5 False >>> 100 < 101 True >>> 5 + 2 > 7 False >>> 100 <= 100 True >>> 5 + 2 >= 7 True |
また、比較演算子はデータ型が一致してるかどうかや文字列にも使えます。
データ型が異なる場合に<、>、<=、>=は使えません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
>>> 15 == '15' False #文字列と数値は等しくないから >>> 'Tom' != 'Tom' False >>> 'Hello' == 'hello' False #文字の大小も区別される >>> 'Hello' == 'Hello' True >>> 'Hello' > 3 TypeError: '>' not supported between instances of 'str' and 'int' |
TypeError: '>' not supported between instances of 'str' and 'int'
とは- 「>」は文字列(str型)と数値(int型)では使えないという意味です。大なりや小なりは大きさを比較するので数値にしか使えませんよね。
代入演算子
- 変数に値を代入するときに使う
- 数値でも文字列でも代入できる
- 変数名のつけ方はルールがある
- 数字や大文字始まりはNG、既存の名前もNG
「代入する」とは変数に数値や文字を格納しておくことです。
長い文字列を変数に格納しておくとコードの量を減らせますし、
数値の場合は変数の値を一か所変えるだけで全体を変更できます。
1 2 3 4 5 6 7 8 9 |
##数値を代入する >>> x = 5 #xに5を代入 >>> print(x) #xの値を表示 5 ##文字列を代入する >>> y = 'Hello' #yにHelloを代入 >>> print(y) #yの値を表示 Hello |
変数名は自由に決めることができますが、
「list」や「print」などのすでに存在している関数名やキーワード名は避けましょう。
数字も使えますが数字から始まる変数名はダメです。
「4people」はNGですが、「people4」ならOKです。
1 2 3 4 5 6 7 |
>>> 4people = 5 SyntaxError: invalid syntax ''' 数字から始まる変数名は エラーがでる ''' |
コードが長くなると、どんな変数名にしようかと迷いますが便利なサイトがあります。
以下のサイトでは入力した日本語を変数名に変換してくれます。
まとめ
今回は演算子についてまとめてみました。
ほぼ算数の内容なので、わからなくなったら紙に書いて計算してみるのもありですね。
論理演算子と組み合わせるとさらに難しい式になるので丁寧に理解していきましょう。
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]