Pythonで数値が正・負・ゼロのどれかを判定する方法をわかりやすく解説
Pythonでは、ユーザーから入力を受け取った数値が正の数(プラス)、負の数(マイナス)、ゼロのどれに該当するかを、条件分岐を使って簡単に判定できます。
この記事では、代表的な2つの実装方法——if-elif-else文を使う方法と、ネスト(入れ子)構造のif文を使う方法——をコード例とともに紹介します。
方法1:if-elif-else文を使う
最もシンプルで読みやすいのが、if-elif-else文による三択分岐です。条件は上から順に評価され、最初に真(True)になったブロックだけが実行されます。
num = float(input("数値を入力してください: "))
if num > 0:
print("正の数です")
elif num == 0:
print("ゼロです")
else:
print("負の数です")実行例
数値を入力してください: 5 正の数です 数値を入力してください: -3.2 負の数です 数値を入力してください: 0 ゼロです
float()で入力を数値に変換しているため、整数だけでなく小数も扱えます。「0より大きければ正」「0と等しければゼロ」「それ以外(0より小さければ)負」という流れがひと目でわかる、初心者にもおすすめの書き方です。
方法2:ネストされたif文(入れ子構造)を使う
if文の中にさらにif文を入れ子にして判定する方法もあります。外側の条件で「0以上かどうか」を絞り込み、内側の条件で「0と等しいか」を判定することで、正の数とゼロを区別します。
num = float(input("数値を入力してください: "))
if num >= 0:
if num == 0:
print("ゼロです")
else:
print("正の数です")
else:
print("負の数です")処理の流れ
- まず
num >= 0で、数値が0以上かどうかを判定します。 - 0以上の場合、さらに
num == 0をチェックし、等しければ「ゼロ」、そうでなければ「正の数」と出力します。 - 0未満の場合は、そのまま「負の数」と出力します。
まとめ
| 方法 | 特徴 |
|---|---|
| if-elif-else文 | 分岐がフラットで可読性が高く、最も一般的な書き方 |
| ネストされたif文 | 段階的に条件を絞り込めるが、入れ子が深くなると読みにくくなる |
どちらの方法でも結果は同じですが、通常はif-elif-else文の方が構造がシンプルで保守しやすいため推奨されます。状況に応じて使い分けましょう。
-
Pythonで与えられた数値がフィボナッチ数かどうかを判定する方法
本記事では、与えられた数値がフィボナッチ数であるかどうかを判定する問題の解決策について解説します。 問題の定義 ある数値 n が与えられたとき、その数値がフィボナッチ数であるかどうかを判定します。 第 n 項のフィボナッチ数は、直前の2つのフィボナッチ数の和として定義されることは広く知られています。しかし、フィボナッチ数列には漸化式以外にも興味深い数学的性質があります。 フィボナッチ数の判定条件 ある数値 n がフィボナッチ数であるのは、「5×n² + 4」または「5×n² − 4」のいずれかが完全平方数であるとき、かつそのときに限る この性質を利用すれば、フィボナッチ数列を実際に生成しなくて
-
Pythonで変数の存在を確認する方法|locals()・globals()・hasattr()の使い方
Pythonでは、変数が存在するかどうかを確認するために、組み込み関数の locals()、globals()、そして hasattr() を活用します。それぞれの役割と具体的な使い方を、サンプルコードと実行結果をもとに解説します。 変数の存在確認に使える3つの方法 locals():現在のローカルスコープ(関数やメソッド内)で定義されている変数を辞書形式で返します。 globals():モジュール全体(グローバルスコープ)で定義されている変数を辞書形式で返します。 hasattr():オブジェクトが指定した名前の属性を持っているかどうかを真偽値で判定します。 サンプルコード x = 10