【python学習】モジュールとdatetimeモジュール

9591 ワード

一、理論部分
  • プログラムは書くほど長くなり、機能もますます多くなります.コード多重化率を向上させ,冗長コード量を低減するために,関数,クラスなどのパッケージ方式を発明した.
  • プログラムの機能がさらに拡張されるにつれて、すべてのコードをpyファイルに置くと目まぐるしくなり、筋道も欠け、異なるファイルに置く時が来ます.
  • モジュールはプログラムであり、簡単にコードとして理解することができ、このコードでは関数、クラス、変数を定義することができ、これらはすべてのファイルが共有されても、モジュールとしてプライベートであってもよい.
  • 異なるモジュールは異なるpyファイルです.
  • CまたはC++に詳しい友人は、その中の#includeに類比することができる.
  • パッケージは、1つのフォルダに格納されたモジュールの集合です.
  • によって呼び出される方法はimport [as ]であり、[as ]は、CまたはC++のtypedefと同様にコードを簡略化するためにオプションである.
  • モジュール内の関数を呼び出す場合は、.の形式で呼び出さなければなりません.
  • モジュール内の一部の関数のみを使用したい場合は、プログラムの先頭from import で、プログラム内で直接その関数名を使用して呼び出すことができます.

  • 二、練習問題
    1、Collectionモジュールを理解し、プログラムを作成して、所与のリストで最も一般的な要素を問い合わせる.
    タイトルの説明:
    入力:language=[‘PHP’,‘PHP’,‘Python’,‘PHP’,‘Python’,‘JS’,‘Python’,‘Python’,‘PHP’,‘Python’]
    出力:Python
    構想:collectionsモジュールにおけるCounterクラスの目的は,値の出現回数を追跡することである.これは無秩序なコンテナタイプで、要素がkeyであり、そのカウントがvalueである辞書のキー値ペアとして格納されます.カウント値は、0と負数を含む任意のIntergerであってもよい.
    from collections import Counter
    
    def most_element(language):
        c = Counter(language)	#      , {  :  , .......}
        temp = -1
        res = 'Null'
        for i in c:
            if c[i] > temp:
                temp = c[i]
                res = i
        return res
    
    language = ['PHP', 'PHP', 'Python', 'PHP', 'Python', 'JS',
                'Python', 'Python','PHP', 'Python']
    print(most_element(language))
    

    2、ユーザーが入力した日付と時間を2020-1-21 9:01:30、UTC+5:00などのタイムゾーン情報を取得したとします.strです.関数を作成してtimestampに変換してください.テーマの説明:
    Input file
    example1: dt_str='2020-6-1 08:10:30', tz_str='UTC+7:00'
    example2: dt_str='2020-5-31 16:10:30', tz_str='UTC-09:00'
      
    Output file
    result1: 1590973830.0
    result2: 1590973830.0
    

    未完待続
    3、Pythonプログラムを作成し、指定した年のすべての日曜日を選択します.タイトルの説明
     Input file
         2020
     Output file
         2020-01-05
         2020-01-12
         2020-01-19
         2020-01-26
         2020-02-02 
         -----    
        2020-12-06  
        2020-12-13     
        2020-12-20   
        2020-12-27
         
       def all_sundays(year):
       		# your code here  
        ```
    

    考え方:ここではcalendar を使用します.具体的なコードは以下の通りです.
    import calendar as cal
    
    def all_sundays(year):
        for i in range(1, 13): #  12  
            c = cal.monthcalendar(year, i) #       ,      
            for j in c: #                     
                if j[6] > 0: #      
                    print("%d-%02d-%02d" % (year, i, j[6]))
        return
            
    all_sundays(int(input()))	#        int