Python の式の値を文字列の中に入れる(f文字列/f-string)

フォーマット済み文字列リテラル( formatted string literal )または f-string は、接頭辞 'f' または 'F' の付いた文字列リテラルです。これらの文字列には、波括弧 {} で区切られた式である置換フィールドを含めることができます。他の文字列リテラルの場合は内容が常に一定で変わることが無いのに対して、フォーマット済み文字列リテラルは実行時に式として評価されます。

サンプル

以下はnominatimをURLで呼ぶときの例である。

lat = 34.228242
lng = 135.169971

url = f'https://nominatim.openstreetmap.org/reverse?lat={lat}&lon={lng}&format=json&accept-language=en&zoom=18'

result = requests.get(url=url)
result_json = result.json()
print(result_json['display_name'])

文字列の中に変数を取り込んで、実行時に動的に変更することができる。

日付型

インポート方法

import datetime

今日の表示

dateメソッドで日付だけ表示する。

print(datetime.date.today()) # 2017-11-08

datetimeメソッドで日付と時間が表示できる。

print(datetime.datetime.today()) # 2017-11-08 23:58:55.230456

日付・時間の設定

print(datetime.date(2017, 11, 12)) # 2017-11-12
print(datetime.datetime(2017, 11, 12, 9, 55, 28)) # 2017-11-12 09:55:28

strから日付型への変換

文字列でdate/timeがあれば、datetime.strptime()メソッドで日付型に変換できる。

str_datetime = '2012-12-29 13:49:37'
datetime1 = datetime.strptime(str_datetime, '%Y-%m-%d %H:%M:%S')

年、月、日、時、分、秒の取得

now = datetime.datetime(2017, 11, 12, 9, 55, 28)
print(now.year) #2017
print(now.month) #11
print(now.day) #12
print(now.hour) #9
print(now.minute) #55
print(now.second) #28

リスト型

チュートリアル

3.1.3. リスト型 (list)

定義

list1 = ['1', '2']

最後に追加

list_line.append(str_variable)

指定位置に要素を追加

挿入する位置を1つ目のパラメーターで指定する。指定した番号の要素の直前に挿入される。

list1.insert(0, 'xxxx')
  • 先頭:0
  • 最後の1つ前:-1
  • 最後の要素の後:length(list1)(appendと等価)

リストの結合

リストにextendすると代入せずに中身が変わる。

list1 = [1,2]
list2 = [3,4]
list1.extend(list2)
list1
[1, 2, 3, 4]
list2
[3, 4]

リストの逆順

reverse()

メソッドのreverse()は、元のリスト自体が書き換えられる。

list1 = [1,2,3]
list1.reverse()
print(list1)    # [3,2,1]

reversed()

元のリストを保存する場合は、組み込み関数のreversed()を使う。

reversed()はイテレーターを返すので、リストにするにはlist()を使う。

list1_reversed = list(reversed(list1))

辞書型

チュートリアル

5.5. 辞書型 (dictionary)

定義

dict = {'0001F': 58, '000425': 6, '0007c5': 11}

参照

dict['0001F']

上記の参照ではキーが存在しないときはKeyErrorが発生するので、get()メソッドを使うとよい。

dict.get('0001F','Default')

キーがあれば値を返し、なければDefaultを返す。