生年月日から星座を自動判定して表示するPythonプログラム
はじめに
生年月日(日と月)を入力すると、それに対応する星座(ゾディアックサイン)を自動的に判定して表示するPythonプログラムを紹介します。条件分岐の基本的な使い方を学ぶのに最適な題材です。
実行例
入力:Day = 13, Month = November 出力:Scorpio(さそり座)
アルゴリズム
ステップ1:生年月日(日と月)を入力する。 ステップ2:その月と日が、特定の星座の有効な期間内に含まれるかどうかを判定する。 ステップ3:該当する星座を表示する。
各星座には切り替わりの日付があります。たとえば11月22日より前であれば「さそり座」、22日以降であれば「いて座」といった具合です。この境界日を条件式で比較することで、星座を決定できます。
サンプルコード
def zodiac_sign(day, month):
# 月と日が、指定された星座の有効な範囲内にあるかをチェック
if month == 'december':
astro_sign = 'Sagittarius' if (day < 22) else 'Capricorn'
elif month == 'january':
astro_sign = 'Capricorn' if (day < 20) else 'Aquarius'
elif month == 'february':
astro_sign = 'Aquarius' if (day < 19) else 'Pisces'
elif month == 'march':
astro_sign = 'Pisces' if (day < 21) else 'Aries'
elif month == 'april':
astro_sign = 'Aries' if (day < 20) else 'Taurus'
elif month == 'may':
astro_sign = 'Taurus' if (day < 21) else 'Gemini'
elif month == 'june':
astro_sign = 'Gemini' if (day < 21) else 'Cancer'
elif month == 'july':
astro_sign = 'Cancer' if (day < 23) else 'Leo'
elif month == 'august':
astro_sign = 'Leo' if (day < 23) else 'Virgo'
elif month == 'september':
astro_sign = 'Virgo' if (day < 23) else 'Libra'
elif month == 'october':
astro_sign = 'Libra' if (day < 23) else 'Scorpio'
elif month == 'november':
astro_sign = 'Scorpio' if (day < 22) else 'Sagittarius'
print(astro_sign)
# ドライバーコード
if __name__ == '__main__':
d = int(input("Enter Day ::>"))
m = input("Enter the Month ::>")
zodiac_sign(d, m)コードのポイント
- 月ごとに
if / elif文で分岐し、さらに三項演算子(条件式)を使って日付による切り替えを1行で表現しています。 - 月はすべて小文字の文字列(
'january'など)として比較しているため、入力時も小文字で統一する必要があります。 - 日付は
int()で整数に変換してから渡す点に注意してください。
出力結果
Enter Day ::>13 Enter the Month ::>november scorpio
まとめ
このプログラムは、月ごとの星座の境界日を条件分岐で判定するシンプルな構造になっています。辞書型を使って月と境界日を管理すれば、コードをさらに簡潔にリファクタリングすることも可能です。条件分岐とユーザー入力の処理を組み合わせた、初心者向けの良い練習例といえるでしょう。
-
Pythonでカクテルソート(双方向バブルソート)を実装する方法
この記事では、カクテルソート(Cocktail Sort)をPythonで実装する方法について解説します。サンプルコードと実行結果を通じて、アルゴリズムの仕組みをわかりやすく説明していきます。 カクテルソートとは カクテルソートは「双方向バブルソート」とも呼ばれるソートアルゴリズムです。通常のバブルソートが一方向のみの走査を行うのに対し、カクテルソートはリストを左右両方向に交互に走査しながら要素を並べ替えていく点が特徴です。 アルゴリズムの手順 1. 左から右への走査 まず配列を左から右へ走査します。走査中は隣接する要素同士を比較し、条件を満たしていれば値を入れ替えます。この処理により、配列内
-
【Python】与えられた数がフィボナッチ数かどうかを判定する方法を解説
本記事では、以下の問題文に対する解決策について詳しく学んでいきます。 問題の定義 数値 n が与えられたとき、その数がフィボナッチ数であるかどうかを判定します。 ご存知のとおり、n番目のフィボナッチ数は「直前の2つのフィボナッチ数の和」として定義されます。しかし、この漸化式以外にも、フィボナッチ数には興味深い数学的な性質が存在します。 フィボナッチ数の判定に使える重要な性質 ある数 n がフィボナッチ数であるのは、次の条件が成り立つ場合、かつその場合に限られます。 5×n² + 4 が完全平方数である または 5×n² − 4 が完全平方数である つまり、上記のどちらか一方(または両方)が