こんにちは。
生年月日を入力して年齢と星座を表示するプログラムを作成しようと思います。
今回は長くなるので、2回に渡って説明します。
では始めましょう!
生年月日を入力する
今回はコマンドプロンプトから情報(生年月日)を入力します。
情報を入力するにはInput関数を使用します。
プログラムは下記の通りになります。birthyear、birthmonth、birthdayにそれぞれ数値が入力されます。
birthyear = input("生まれた西暦を入力して下さい(例:1999)>> ")
birthmonth = input("生まれた月を入力して下さい(例:12) >> ")
birthday = input("生まれた日を入力して下さい(例:1)")
実際、プログラムを実行すると下記のようになります。
重要な事は、Input関数で入力されたものは文字列として判断されます。これは後の計算処理に関わってくるので、頭の隅に置いておいて下さい。
年齢を計算する
ライブラリの使用方法
入力された生年月日から年齢を計算する為には、本日の日付を知る必要があります。
Pythonには日付を知る為のライブラリ『datetime』が用意されています。
# import 『ライブラリ名』 import datetime
ライブラリを使用するためには、プログラムの先頭にライブラリをインポートします。これでdatetimeという日付の関数が使えることになります。
todaydt = datetime.datetime.now() #todaydtに本日の日付を入力
print(todaydt.year)
print(todaydt.month)
print(todaydt.day)
次に、datetimeの後ろに.datetime.now()を付けると、本日の日付を求めることが出来ます。
本日の日付が入力された「todaydt」には複数のデータがあり、todaydt.yearで本日の西暦、todaydt.monthで本日の月、todaydt.dayで本日の日を求めることが出来ます。
文字列を数字に変換する
年齢の変数を「age01」とします。
そして、年齢を計算する時は、本日の日付から生年月日を引きます。
age01 = todaydt.year - birthyear #エラーになる
しかし、先述したように、プログラム側では文字列で認識される(birthyearが文字列)為、そのまま引き算をするとエラーが出てしまいます。
なので、birthyearの文字列を数字(整数)に変換しましょう。
文字列を整数値にするには「int(文字列)」を使用します。
age01 = todaydt.year - int(birthyear)
文字列から数字、数字から文字列を「型変換」といいます。よく出てくる言葉なので、憶えておいて下さい。
年齢を出力
今回は年齢を出力するまでのプログラムを作成します。
プログラムは下記の通りになります。
import datetime
todaydt = datetime.datetime.now() #todaydtに本日の日付を入力
name = input("名前を入力して下さい >> ")
birthyear = input("生まれた西暦を入力して下さい(例:1999)>> ")
birthmonth = input("生まれた月を入力して下さい(例:12) >> ")
birthday = input("生まれた日を入力して下さい(例:1)")
age01 = todaydt.year - int(birthyear)
print(f"{name}さんの年齢は{age01}歳です")
最後の出力について、ダブルクオーテーションの前に『f』を付ける事で、ダブルクォーテーション内に変数を波括弧{}で変数を囲うと出力することが出来ます。多くの変数を出力する際には便利なので、憶えておいて下さい。
次回
いかがだったでしょうか。
初めてのプログラムでしたが、少しコツは掴めたならうれしいです。
次回は生年月日から星座を表示させる機能をプログラムを加えます。
「役に立った!」と思れましたら、下のSNSボタンで記事のシェアをしていただけると嬉しいです!
コメント