Python 3 エンジニア認定実践試験 問題集8. 「日付と時刻の処理」

投稿日:

更新日:

カテゴリ:

Python 3 エンジニア認定実践試験対策として、第8章「日付と時刻の処理」についてChatGPTで生成した模擬問題です。

生成された問題の適切性と“正解”回答の正しさは一通り検証しておりますので、皆さんのご参考になれれば嬉しいです。

問題

問題は以下になります。問題の下に正解を隠してますので、クリックしたら確認できます。
あとは、検証した内容や補足を付け加えてますので参考にしてください。

  1. Pythonの標準ライブラリで、日付と時刻を操作するために使用されるモジュールは何ですか?

    • a) datetime
    • b) time
    • c) date
    • d) calendar
    クリックして正解と解説をチェック
    正解: a) datetime

    次のように、年月日だけの指定はできるが、一部欠けるとエラーになります。また、時刻だけ指定の生成はできません。

    >>> from datetime import datetime
    >>> datetime(1999, 9, 9)
    datetime.datetime(1999, 9, 9, 0, 0)
    
    >>> datetime(1999, 9)
    Traceback (most recent call last):
      File "", line 1, in 
    TypeError: function missing required argument 'day' (pos 3)
    
    >>> datetime(hour=10, minute=10, second=10)
    Traceback (most recent call last):
      File "", line 1, in 
    TypeError: function missing required argument 'year' (pos 1)


  2. 現在の日付と時刻を取得するために使用される datetime メソッドは何ですか?

    • a) get_current()
    • b) now()
    • c) current_time()
    • d) current_datetime()
    クリックして正解と解説をチェック
    正解: b) now()
    >>> from datetime import datetime
    >>> datetime.now()
    datetime.datetime(2023, 9, 29, 0, 16, 34, 16317)


  3. datetime オブジェクトから年を取得するために使用するメソッドは何ですか?

    • a) get_year()
    • b) year
    • c) year()
    • d) get_date_year()
    クリックして正解と解説をチェック
    正解: b) year
    >>> datetime.now().year
    2023


  4. datetime オブジェクトから曜日を取得するために使用するメソッドは何ですか?

    • a) weekday()
    • b) get_weekday()
    • c) day_of_week()
    • d) get_day_of_week()
    クリックして正解と解説をチェック
    正解: a) weekday()

    year, month, day, hour, minute, secondは属性ですので、括弧付きませんが、weekday()はメソッドです。
    他のメソッドは、today()やutcnow(), date(), time(), tzname()などがあります。

    >>> datetime.now().weekday()
    4
    
    >>> datetime.now().utcnow()
    datetime.datetime(2023, 9, 28, 15, 25, 20, 443130)
    >>> datetime.utcnow()
    datetime.datetime(2023, 9, 28, 15, 25, 33, 93807)
    
    >>> datetime.today()
    datetime.datetime(2023, 9, 29, 0, 26, 15, 331804)
    >>> datetime.now().today()
    datetime.datetime(2023, 9, 29, 0, 26, 22, 748225)


  5. time ライブラリを使用して、現在の日付と時刻を文字列として取得するための関数は何ですか?

    • a) current_datetime()
    • b) now()
    • c) gmtime()
    • d) timestamp()
    クリックして正解と解説をチェック
    正解: c) gmtime()
    >>> import time
    >>> time.gmtime()
    time.struct_time(tm_year=2023, tm_mon=9, tm_mday=28, tm_hour=15, tm_min=27, tm_sec=12, tm_wday=3, tm_yday=271, tm_isdst=0)


  6. datetime オブジェクトから月を取得するために使用するメソッドは何ですか?

    • a) month
    • b) get_month()
    • c) month_of_year
    • d) get_month_attribute()
    クリックして正解と解説をチェック
    正解: a) month
    >>> datetime.now().month
    9


  7. 2つの datetime オブジェクトの間隔を計算するために使用する関数は何ですか?

    • a) interval()
    • b) time_interval()
    • c) timedelta()
    • d) time_difference()
    クリックして正解と解説をチェック
    正解: c) timedelta()
    >>> from datetime import timedelta
    >>> timedelta(seconds = 5)
    datetime.timedelta(seconds=5)
    
    # 5秒前の日時
    >>> datetime.now() - timedelta(seconds = 5)
    datetime.datetime(2023, 9, 29, 0, 28, 52, 485387)


  8. datetime オブジェクトを指定した書式の文字列に変換するために使用するメソッドは何ですか?

    • a) to_string()
    • b) format()
    • c) strftime()
    • d) isoformat()
    クリックして正解と解説をチェック
    正解: c) strftime()

    isoformat()も文字列に変換できますが、書式指定はできません。

    >>> datetime.now().strftime('%Y/%m/%d')
    '2023/09/29'
    
    >>> datetime.now().isoformat()
    '2023-09-29T00:30:38.866612'


  9. time ライブラリを使用して、現在のエポック時間(UNIX時間)を取得するための関数は何ですか?

    • a) current_timestamp()
    • b) get_epoch_time()
    • c) time()
    • d) epoch()
    クリックして正解と解説をチェック
    正解: c) time()
    >>> time.time()
    1695915133.590592


  10. datetime オブジェクトから分を取得するために使用するメソッドは何ですか?

    • a) minutes
    • b) get_minutes()
    • c) minute
    • d) get_minute()
    クリックして正解と解説をチェック
    正解: c) minute

    datetime オブジェクトの属性は全て単数形です。

    >>> datetime.now().minute
    32


  11. datetime オブジェクトの日付部分を取得するために使用するメソッドは何ですか?

    • a) date()
    • b) get_date()
    • c) day()
    • d) get_day()
    クリックして正解と解説をチェック
    正解: a) date()
    >>> datetime.now().date()
    datetime.date(2023, 9, 29)


  12. time ライブラリを使用して、指定した秒数のスリープ(一時停止)を行うための関数は何ですか?

    • a) delay()
    • b) pause()
    • c) wait()
    • d) sleep()
    クリックして正解と解説をチェック
    正解: d) sleep()
    >>> for i in range(5):
    ...     print(f'sleep {i}')
    ...     time.sleep(1)
    ... 
    sleep 0
    sleep 1
    sleep 2
    sleep 3
    sleep 4


  13. zoneinfo モジュールを使用して、特定のタイムゾーンの情報を取得するためのクラスは何ですか?

    • a) Timezone
    • b) TZInfo
    • c) TimeZoneInfo
    • d) ZoneInfo
    クリックして正解と解説をチェック
    正解: d) ZoneInfo
    >>> from zoneinfo import ZoneInfo
    >>> ZoneInfo('Asia/Tokyo')
    zoneinfo.ZoneInfo(key='Asia/Tokyo')


  14. datetime オブジェクトからタイムゾーンを取得するための関数は何ですか?

    • a) get_timezone()
    • b) tzinfo()
    • c) tzinfo
    • d) zoneinfo
    クリックして正解と解説をチェック
    正解: c) tzinfo
    >>> dt = datetime(2022, 11, 1, tzinfo=ZoneInfo('America/Los_Angeles'))
    >>> dt.tzinfo
    zoneinfo.ZoneInfo(key='America/Los_Angeles')


  15. time ライブラリを使用して、struct_time オブジェクトから年を取得するために使用するメソッドは何ですか?

    • a) get_year()
    • b) year
    • c) year()
    • d) tm_year
    クリックして正解と解説をチェック
    正解: d) tm_year
    >>> time.gmtime().tm_year
    2023


  16. 現在スレッドを5秒間スリープ(一時停止)を行うための関数は何ですか?

    • a) datetime.sleep(5)
    • b) pause(5)
    • c) time.sleep(5)
    • d) sleep(5)
    クリックして正解と解説をチェック
    正解: c) time.sleep(5)

    似たような問題で試験に出ました!私は「現在スレッド」に引っかかって、テキストにtime.sleep()以外、もう一個紹介されたよなぁ〜time.sleep()は全スレッド停止、そっちは現在スレッドだけだったような〜
    ということで、datetime.sleep() を選んでしまいました。。
    正しくは、time.sleep()でスレッド全体が止まる。もう一個紹介されたのは、asyncio.sleep()の話です。そちらは並列処理の話ですので、出題範囲ではありません。



投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です