Pythonで偶数を扱う【判定、格納、抽出】
- 作成日: 2023-07-06
- 更新日: 2023-12-24
- カテゴリ: Python
Pythonで偶数を扱う
この記事ではPythonで偶数を扱う方法を解説します。
具体的には
- 偶数判定
- 偶数格納
- 偶数抽出
の処理について見ていきます。
関連記事
Djangoでオブジェクトを一括作成・更新【bulk_create, bulk_update】
DjangoのModel.objects.filter()の使い方【QuerySet】
Djangoのmodelのcreate()の使い方【Python】
Django入門: ルートの設定 ~ 簡単な一行掲示板アプリを作る その4【Windows10】
NumPyのappend()の使い方: 配列の末尾に要素を追加
Numpyのarangeの使い方: 指定範囲の数列を生成する
Python3でYoutube Data APIを使ってキーワード検索する
PythonからC言語(my.puts)を呼び出して実行する
偶数判定
ある値が偶数かどうか判定するには%
演算子を使います。
%
演算子は割り算の余りを算出する演算子です。
たとえば
print(10 % 2) # 0
上記の10 % 2
の演算の結果は0
になります。
これは10
を2
で割った余りが0
だからです。
たとえば
print(11 % 2) # 1
の11 % 2
の演算の結果は1
になります。
これは11
を2
で割った余りが1
になるからです。
ある値が偶数かどうか判定する場合は先ほどのように対象の値を2
で%
演算します。
そしてその結果が0
であれば2
で割り切れる数であるため偶数と見なすことができます。
if 10 % 2 == 0:
print('偶数です')
逆に2
で割った余りが1
であるならその値は奇数になります。
if 11 % 2 == 1:
print('奇数です')
リストに偶数だけ格納する
数列のリストを生成する場合に偶数だけ入ったリストを生成したいケースがあるとします。
そういう場合は以下のようなコードを書けば可能です。
lis = [n for n in range(10) if n % 2 == 0]
print(lis)
# [0, 2, 4, 6, 8]
上記のコードで使っているのリスト内包表記です。
内包表記については以下の記事でも詳しく解説しています。
関連記事
Pythonのリスト内包表記まとめ
普通にrange()
が生成する値を使ってリストを生成する場合は
[n for n in range(10)]
という内包表記を使いますが、これにif文で偶数の判定を入れると
[n for n in range(10) if n % 2 == 0]
という感じになります。
このif n % 2 == 0
という条件を加えるとリストを生成する際に偶数のn
だけを格納するようになります。
リストから偶数のみ抽出する
特定の値が入ったリストから偶数のみを抽出したいとします。
そういう場合はfilter
関数などを使うとラクです。
lis = [1, 2, 5, 6, 9, 13, 14]
lis = filter(lambda n: n % 2 == 0, lis)
lis = list(lis)
print(lis)
# [2, 6, 14]
filter
関数については以下の記事でも詳しく解説しています。
関連記事
Pythonのfilterの使い方: 関数で配列をフィルタリング
filter()
の第1引数にフィルターの条件に使う関数を指定します。
ここではlambda n: n % 2 == 0
というラムダ式を与えています。
このラムダ式はn
が偶数かどうかチェックする式です。
この式でもってfilter()
するとリストから偶数のみを抽出できます。
filter()
は返り値としてfilter
オブジェクトを返しますのでこれをlist()
などに渡すと結果をリストにできます。
おわりに
今回はPythonで偶数を扱う方法を解説しました。
なにか参考になれば幸いです。
🦝 < 偶数か奇数か
🦝 < モジュラー演算