背景
言語処理100本ノック 2015を今やっているのでその備忘録的なやつ。
やりたいこと
引数x, y, zを受け取り「x時のyはz」という文字列を返す関数を実装する。
さらに、x=12, y="気温", z=22.4として、実行結果を確認。
結果
Python3.6から新しく導入されたf-string関数を使用して作成してみました。
def getTemplate(x, y, z) : result = f'{x}時の{y}は{z}' return result str = getTemplate(12, '気温', 22.4) # 実行結果 > str > '12時の気温は22.4'
解説/考察
今まで文字列への変数組み込みは%演算子でおこなっていたのですが、今回はf-string関数なるものが登場したと教えてもらったのでそれを利用しました。
初めて使いましたが、これは楽ちんでした!そしてスマート!
こんな感じで、文章内に直接変数名を入れることができるので可読性も申し分なし。
> age = 28 > f'I am {age} yo' > 'I am 28 yo'
{}内で演算も可能です。
> age = 28 > f'I was {age-8} yo 8 years ago' > 'I was 20 yo 8 years ago' > import datetime > birthday = datetime.date(1989, 2, 10) > f'I was born in {birthday:%Y}' > 'I was born in 1989'
Pythonには他にも文字列フォーマットに%演算子やstr.format()関数等があるのでそちらバージョンも一応作成しました。
# %演算子 def getTemplate(x, y, z) : result = '%s時の%sは%s' % (x, y, z) return result str = getTemplate(12, '気温', 22.4) #実行結果 > '12時の気温は22.4'
# str.format() def getTemplate(x, y, z) : result = '{x}時の{y}は{z}'.format(x=x, y=y, z=z) return result str = getTemplate(12, '気温', 22.4) #実行結果 > '12時の気温は22.4'
やっぱり、f-staringが一番スマート