Python でのプログラミングの典型的なケース [試験問題] 日付がその年の日であるかを判断する

この記事では、Python プログラミングの古典的なケースを一緒に検討し、Python を没入的に学習できるようにします。まずこのトピックについて考えてから、この記事の問題解決方法と比較してください。異なる意見がある場合は、公式アカウントで議論してください。

1.典型的なケース【試験問題】

  
質問:
  
日付を入力して、この日が一年のうち何日であるかを判断してください。
  
入力:
  
20220809
  
出力:
221

  
  

2. 典型的なケースの問題解決方法

  

1 方法 1: この日とその年の 1 月 1 日との時差を計算して日数を求める

  
上記の場合の問題を解決する最初の方法は次のとおりです。
  
ステップ 1: 入力時刻の年を切り取り、その年の 1 月 1 日を基準日としてつなぎ合わせます。
  
Step2: 入力した日付と基準日の間隔を計算し、その間隔に 1 を加算して日付を求めます。
  
具体的なコードは次のとおりです。

from datetime import date

raw_date = input('请按yyyymmdd方式输入年月日')
def y_days1(raw_date):
    date1 = date(int(raw_date[0:4]), 1, 1)
    date2 = date(int(raw_date[0:4]), int(raw_date[4:6]), int(raw_date[6:8]))
    return (date2 - date1).days + 1
y_days1(raw_date)

input('yyyymmddに従って年、月、日を入力してください'): 日付を手動で入力します。
  
raw_date[0:4]: 文字列の 1 桁目から 4 桁目までをインターセプトします。
  
日付を手動で 20220105 と入力した場合、結果は次のようになります。

5

結果が正しいかどうかを手動で確認できます。この方法の利点は、ロジックがシンプルで理解しやすいことです。
  
  

2 方法2:各月の日数を合計して求める

  
上記の場合の 2 番目の問題解決アイデアは次のとおりです。
  
ステップ 1: カレンダー ライブラリを呼び出して for ループを適用し、入力日付がその年の現在の月より小さい各月の日数を取得します。それらを合計します。
  
ステップ 2: 日付の当月の日数を取得し、それを前の日数と合計して、この日が何日であるかを調べます。
  
具体的なコードは次のとおりです。

import calendar

raw_date = input('请按yyyymmdd方式输入年月日')
def y_days2(raw_date):
    all_days = 0
    for i in range(1, int(raw_date[4:6])):
        all_days += calendar.monthrange(int(raw_date[0:4]), i)[1]
    all_days += int(raw_date[6:8])
    print(all_days)
    return all_days
y_days2(raw_date)

マニュアルの日付が 20220108 の場合、結果は次のようになります。

8

結果が正しいかどうかを手動で検証することもできます。また、興味のある友人がコードを Python にコピーして、検証のために別の日付を入力することもできます。
  
ここまで、Pythonでのプログラミング【試験問題】の古典的なケースで、年の日付を決定する方法について説明してきました。Python の関数についてさらに詳しく知りたい場合は、公式アカウントの「Python を学ぶ」モジュールの関連記事を読むことができます。
  
あなたは興味があるかもしれません:
Python でピカチュウを描くPython で
ワード クラウド マップを描く
Python で 520 回の永遠の鼓動を描くPython 顔認識 -だけが
私の目にはneo4j を操作するには Python の py2neo ライブラリを使用しますPython のロマンチックな告白ソース コード コレクション (愛、バラ、写真の壁、星空の下での告白) の関係マップを構築します。



おすすめ

転載: blog.csdn.net/qq_32532663/article/details/126568038
おすすめ