実現したいこと
授業で行っている正年月日を入力して、今日の運勢を占うプログラムを完成させたいです。
実行結果の例
今日は2021年10月20日です。
あなたの運勢を占います。。[Y/N]->
正年月日をYYYYMMDDで入力してください->19760626
あなたの運勢は大吉です。
###ランダムに0から15数値を生成して運勢に番号を振り当てる
大吉:0
中吉:1、2
小吉:3、4、5
吉 :6、7、8、9
末吉:10、11、12
凶 :13、14
大凶:15
ランダムな数値は以下の計算を行う
今日の日付 20211020
生年月日 19760626
差し引き 450394 * 1〜9の乱数 % 16 = 0〜15の値 です。
###オプション
オプション①
あなたの運勢を占います[Y/N]・・・Y:占う/N:終了
Y又はN以外はエラーとする
オプション②
誕生年は1900以降。それ以外はエラーとする。
誕生年は1〜12。それ以外はエラーとする。
誕生日は1月なら31まで・・・各月の日数を超える場合はエラーとする。
オプション③
生年月日のうるう年判定がを行うユーザー定義関数を作成し、入力された西暦がうるう年か判定し、うるう年であれば、2月の日数を29日に変更する。
*参考:ユーザー関数の引数を西暦、戻り値を28又は29にするなど。
python
1from datetime import date 2today = date.today() 3year = today.year 4month = today.month 5day = today.day 6d = [0,31,28,31,30,31,30,31,31,30,31,30,31] 7kyo = str(year) + str(month) + str(day) 8print(f"今日は{year}年{month}月{day}日です") 9from random import randint 10i = randint(1,9) 11while True: 12 try: 13 unsei = (input("あなたの今日の運勢を占います[Y/N]->")) 14 if unsei == "n" or "N": 15 print("終了") 16 break 17 elif unsei == "y" or "Y": 18 print() 19 except: 20 print("エラーです") 21 while True: 22 try: 23 j = int(input("生年月日をYYYYMMDDで入力してくださいー>")) 24 if len(str(j)) != 8: 25 print("文字数が足りないです") 26 continue 27 year_z = int(str(j)[0:4]) 28 month_z = int(str(j)[4:6]) 29 day_z = int(str(j)[6:]) 30 if year_z <1900 or year < year_z: 31 print("エラー1") 32 continue 33 if month_z > 12 or month_z <= 0: 34 print("エラー2") 35 continue 36 if d[month_z] < day_z: 37 print("エラー3") 38 continue 39 except: 40 print("エラー4") 41 def check(): 42 if int(year) % 400 == 0: 43 u = 29 44 elif int(year) % 100 == 0: 45 u = 28 46 elif int(year) % 4 == 0: 47 u = 29 48 else: 49 u = 28 50 return u 51 re = check() 52 d.insert(2,re) 53 print(d) 54 k = (int(kyo)-j) * i % 16 55 if k == 0: 56 l = "大吉" 57 elif k == i or k == 2: 58 l = "中吉" 59 elif k == 3 or k == 4 or k == 5: 60 l = "小吉" 61 elif k == 6 or k == 7 or k == 8 or k == 9: 62 l = "吉" 63 elif 10 <= k <= 12: 64 l ="末吉" 65 elif k == 13 or k == 14: 66 l ="凶" 67 elif k == 15: 68 l = "大凶" 69 print(f"あなたの運勢は{l}です")
###結果
ローマ字でYを打っても終了となります。どの様にすればいいですか?
このコード自体も完成できていないので、完成まで助けて欲しいです。
初心者ですがお願いします。