Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで日付を読みやすい形式で出力する方法【str()とrepr()の違いを解説】

print関数で日付を直接出力すれば、普段どおりの読みやすい形式で日付が表示されます。

import datetime
today = datetime.date.today()
print(today)

出力

次のような結果が得られます。

2018-01-02

これはまさに期待どおりの結果です。ところが、この日付をリストに追加してから表示しようとすると、話が変わってきます。

import datetime
my_list = []
today = datetime.date.today()
my_list.append(today)
print(my_list)

出力

今度は次のような結果になってしまいます。

[datetime.date(2018, 1, 2)]

このような出力になるのは、datetimeが「オブジェクト」だからです。つまり、datetimeを操作しているとき、私たちが扱っているのは文字列でもタイムスタンプでもなく、あくまでオブジェクトなのです。

実は、Pythonのすべてのオブジェクトは2種類の文字列表現を持っています。

  • 通常の表現printで使われるもので、str()関数で取得できます。クラス内の__str__メソッドによって実装されています。
  • 代替表現(公式表現):オブジェクトとしての性質(データとしての中身)を表すもので、repr()関数で取得できます。

リストの中身を表示するとき、Pythonは後者のrepr()による表現を使用するため、先ほどのような出力になったのです。

したがって、期待どおりの形式で日付を取得したい場合は、datetimeオブジェクトに対して明示的にstr()を呼び出す必要があります。

import datetime
my_list = []
today = datetime.date.today()
my_list.append(str(today))
print(my_list)

出力

これで、次のように読みやすい形式で表示されます。

['2018-01-02']
  1. Pythonで昨日・今日・明日の日付を取得する方法

    Pythonで現在の日付を基準にして、昨日・今日・明日の日付を求めたい場面はよくあります。そのような場合、まずdatetimeモジュールを使って現在の日時を取得し、組み込みのtimedeltaクラスを活用することで、前日や翌日の日付を簡単に計算できます。以下に具体的な実装例を示します。サンプルコードfrom datetime import datetime, timedelta present = datetime.now() yesterday = present - timedelta(1) tomorrow = present + timedelta(1) print(昨日の日付:)

  2. Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例

    Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実