パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
伊久間博之さんの投稿
(投稿ID: 5502)
def get_first_month_day_of_zodiac_sign(month, zodiac_part_dict): """各星座の最終日を含む月から、その星座の最初の日を返す :return: {'month': 1, 'day': 20} といった形式の辞書 """ if month == 1: last_month = 12 elif month >= 12: last_month = month else: last_month = month - 1 for v in zodiac_part_dict.values(): if v['month'] == last_month: return {'month': last_month, 'day': v['day'] + 1, } raise ValueError('Invalid month')
def test_get_first_month_day_of_zodiac_sign_month_raise_invalid_0(): """ get_first_month_day_of_zodiac_sign に 1月未満を渡したときの異常動作を確認する """ zodiac_part_dict = get_zodiac_part_dict() with pytest.raises(ValueError): get_first_month_day_of_zodiac_sign(0, zodiac_part_dict) def test_get_first_month_day_of_zodiac_sign_month_raise_invalid_13(): """ get_first_month_day_of_zodiac_sign に 13月以上を渡したときの異常動作を確認する """ zodiac_part_dict = get_zodiac_part_dict() with pytest.raises(ValueError): get_first_month_day_of_zodiac_sign(13, zodiac_part_dict)
伊久間博之さんのコメント
(コメントID: 8250)
def get_first_month_day_of_zodiac_sign(month, zodiac_part_dict): """各星座の最終日を含む月から、その星座の最初の日を返す :return: {'month': 1, 'day': 20} といった形式の辞書 """ if month == 1: last_month = 12 elif month > 12: last_month = month else: last_month = month - 1 for v in zodiac_part_dict.values(): if v['month'] == last_month: return {'month': last_month, 'day': v['day'] + 1, } raise ValueError('Invalid month')
小川 慶一さんのコメント
(コメントID: 8259)
date(2020, month, day) # 不正な month, day の組み合わせだとここで例外が発生する
Captcha:
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2024年12月02日 10:35
2024年11月30日 11:04
2024年11月27日 09:59
2024年11月20日 21:28
2024年10月27日 08:02
2024年12月02日 13:46
2024年12月02日 12:09
2024年12月02日 10:49
2024年12月02日 10:36
2022年02月24日 10:59
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2024年10月21日 17:30
2024年10月18日 17:00
2024年10月17日 17:30
2024年10月18日 16:45
2024年10月17日 07:30
2024年11月27日 11:48
2024年11月25日 12:07
2024年11月17日 09:51
2024年11月15日 16:41
2024年11月15日 13:07
伊久間博之さんの投稿
(投稿ID: 5502)
以下のように修正してみました。
テストコードは以下のようにしてみました。
伊久間博之さんのコメント
(コメントID: 8250)
小川 慶一さんのコメント
(コメントID: 8259)
こういうのは、「どんな値が来る可能性があるか」という前提次第というところです。
全体としては大元の get_zodiac_sign_name 内の以下のコードで不正な値が投入された場合の処理を終えているので、この関数は当初の仕様でも十分です。
「1-12 までの整数値しかこない」等の設計の段階で決めた前提があるならば、 docstring に記述しておくのも良いです。