
【Python】スラッシュ2つ(//)の意味を簡単に解説
公開: 更新:Pythonのスラッシュ2つ(//)による整数除算の使い方
Pythonでスラッシュ2つ(//)を使用すると、整数除算(フロア除算)を行うことができます。一般的な除算演算子(/)とは異なり、スラッシュ2つを使った除算では結果の小数点以下が切り捨てられます。スラッシュ1つ(/)による除算では結果が常に浮動小数点数となりますが、スラッシュ2つ(//)による除算では商の整数部分のみを取得します。
【サンプルコード】
a = 5 / 2
b = 5 // 2
print(f"5 / 2 = {a}")
print(f"5 // 2 = {b}")
【実行結果】
5 / 2 = 2.5
5 // 2 = 2
詳細説明 | |
---|---|
1行目 | 通常の除算演算子(/)を使用して5÷2を計算し、結果を変数aに代入 |
2行目 | 整数除算演算子(//)を使用して5÷2を計算し、結果を変数bに代入 |
3行目 | f文字列を使用してスラッシュ1つの計算結果を表示 |
4行目 | f文字列を使用してスラッシュ2つの計算結果を表示 |
【PR】『Python』を学べる企業・個人向けのプログラミングコース
スラッシュ2つと他の除算演算子の違い
Pythonでは除算に関連する演算子として、スラッシュ1つ(/)、スラッシュ2つ(//)、そして剰余演算子(%)の3種類があります。スラッシュ1つは実数除算、スラッシュ2つは整数除算、剰余演算子は余りを求めるために使用します。整数除算と剰余演算を組み合わせることで、ある数を別の数で割った際の商と余りを取得できます。また、divmod()
関数を使うと、商と余りを一度の操作で取得できます。
【サンプルコード】
int_result = 10 // 3
float_result = 10.5 // 3.0
quotient, remainder = divmod(10, 3)
print(f"10 // 3 = {int_result}")
print(f"10.5 // 3.0 = {float_result}")
print(f"divmod(10, 3) = ({quotient}, {remainder})")
【実行結果】
10 // 3 = 3
10.5 // 3.0 = 3.0
divmod(10, 3) = (3, 1)
詳細説明 | |
---|---|
1行目 | 整数同士の整数除算を行い、結果をint_resultに代入 |
2行目 | 浮動小数点数を含む整数除算を行い、結果をfloat_resultに代入 |
3行目 | divmod関数を使用して商と余りを同時に取得し、それぞれの変数に代入 |
4行目 | 整数同士の整数除算結果を表示 |
5行目 | 浮動小数点数を含む整数除算結果を表示 |
6行目 | divmod関数で取得した商と余りを表示 |
Pythonでスラッシュ2つを使用したプログラミング例
スラッシュ2つ(//)による整数除算は、配列やリストのインデックス計算、ページネーション処理、時間計算などでよく使用されます。例えば、総アイテム数とページあたりのアイテム数から必要なページ数を計算したり、秒単位の時間を時分秒に変換したりする場合に活用できます。また、整数除算は二進数操作やビットシフト操作と組み合わせることで、効率的なアルゴリズムの実装にも役立ちます。
【サンプルコード】
total_items = 95
items_per_page = 10
pages_needed = total_items // items_per_page
if total_items % items_per_page > 0:
pages_needed += 1
total_seconds = 3665
hours = total_seconds // 3600
minutes = (total_seconds % 3600) // 60
seconds = total_seconds % 60
print(f"必要なページ数: {pages_needed}")
print(f"{total_seconds}秒 = {hours}時間{minutes}分{seconds}秒")
【実行結果】
必要なページ数: 10
3665秒 = 1時間1分5秒
詳細説明 | |
---|---|
1行目 | 総アイテム数を変数total_itemsに代入 |
2行目 | ページあたりのアイテム数を変数items_per_pageに代入 |
3行目 | 整数除算を使用して基本ページ数を計算 |
4行目 | 余りがある場合の条件判定 |
5行目 | 余りがある場合はページ数を1増やす |
6行目 | 秒数を変数total_secondsに代入 |
7行目 | 整数除算を使用して時間を計算 |
8行目 | 剰余演算で時間を除いた秒数から整数除算で分を計算 |
9行目 | 剰余演算で残りの秒数を計算 |
10行目 | 計算したページ数を表示 |
11行目 | 計算した時分秒を表示 |
【PR】『Python』を学べる個人・中高生向けのプログラミングコース
Pythonでスラッシュ2つを使用する時の注意点
Pythonでスラッシュ2つ(//)を使用する際には、いくつかの注意点があります。0による除算を行うとZeroDivisionError
が発生するため、例外処理や事前の条件チェックが必要です。また、負の数を含む整数除算では、通常の数学的な割り算と挙動が異なります。Pythonの整数除算は常に小さい方向に切り捨てを行うため、-5 // 2
の結果は-3
となります。浮動小数点数を含む計算では、精度の問題も考慮する必要があることを理解しておきましょう。
【サンプルコード】
print(-5 // 2)
try:
result = 10 // 0
except ZeroDivisionError:
print("0での除算はできません")
a = 0.1 + 0.2
print(f"0.1 + 0.2 = {a}")
print(f"0.1 + 0.2 == 0.3: {a == 0.3}")
【実行結果】
-3
0での除算はできません
0.1 + 0.2 = 0.30000000000000004
0.1 + 0.2 == 0.3: False
詳細説明 | |
---|---|
1行目 | 負の数の整数除算結果を表示 |
3行目 | try文で例外処理を開始 |
4行目 | 0による除算を実行しようとする処理 |
5行目 | ZeroDivisionError例外が発生した場合の処理 |
6行目 | 例外発生時のメッセージを表示 |
8行目 | 浮動小数点数の計算を行い結果を変数aに代入 |
9行目 | 浮動小数点数の計算結果を表示 |
10行目 | 浮動小数点数の等値比較結果を表示 |
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- コマンドプロンプト(cmd)の出し方一覧【Windows】
- 【Python】GUIアプリ開発が向いてない理由と解決策
- 【Python】Windows環境でiOSアプリを開発する方法
- 【Python】リスト(list)からjsonに変換する方法
- 【Python】import osの意味とosモジュールとの違い