未来電子テクノロジーでインターンをしている山田です。
Pythonについて学習のアウトプットとして投稿します。
プログラミング初心者であるため、内容に誤りがあるかもしれません。
もし、誤りがあれば修正するのでどんどん指摘してください。
#print内で変数を扱う方法
pythonで定義した変数をprintで表示する方法をご紹介します。
そもそも、私はインターン先のカリキュラムの課題に取り組んでいた時にこの壁にぶつかりました。
print内で複数行のHTMLを書いている際に、pythonで定義した変数をどのように表示すればいいのか分からず初めは非常に戸惑いました。
そこで、私のような初心者の方もたくさんいるのではないかと思い今回このテーマについてまとめることにしました。
私が調べた中で初心者向けにオススメできるという点で、print内で変数を扱う方法を4つ紹介します。
1.「変数+文字列」を使う
2.printf形式の文字列書式化を使う
3.format関数を使う
4.f文字列(f-strings)を使う
3については、以前Qiitaに投稿させていただきまして、4についてコメントをいただいたので、今回は1と2について紹介していきます。
以前の記事▼
Pythonで複数行のHTMLを書く際のformat関数の使い方
#「変数+文字列」を使った方法
これはもっとも単純な方法であると言えますが、Hello,World! と出力したいときを想定すると以下のようになります。
aisatsu = 'Hello'
sekai = 'World!'
print(aisatsu + ',' + sekai)
ただし、数字を使う場合はstring関数を使って数字を文字列に変換する必要があります。
age = 20
print('私は' + str(age) + '歳です')
私は20歳です
「変数+文字列」は、非常に簡単ですが、単純な場合にのみ向いている方法です。
#printf形式の文字列書式化を使う方法
sprintfは%演算子を使って変数で置き換える方法です。
具体的には、%dや%sなどの変換指定文字を利用して文字列と変数を出力します。
「変数+文字列」の際に用いた年齢の例を今回も使うと、以下のようになります。
age = 20
print('私は%d歳です' % age)
私は20歳です
変数の中身が数値(整数)のときは「%d」
変数の中身が文字列のときは「%s」を使います。
これを応用すると、print内でHTMLを使って複数の文字列を表示する場合など、もう少し複雑な場合でも使用できます。
#変数の定義
age=20
height=170
weight=60
datalist = "あなたは、年齢:" + str(age) + "歳,身長:" + str(height) + "cm,体重:" + str(weight) + "kgでよろしいですか?"
# 以下のコードを書かないと、htmlとして読み込んでもらえない。
print("Content-type: text/html; charset=utf-8")
# printでHTMLコードを表示させることで、ブラウザがHTMLコードとして認識してくれる。
print(
(
"""
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html
charset=utf-8\" / >
</head>
<body>
確認してください。<br>
%s
</body>
</html>
"""
)
% datalist
)
確認してください。
あなたは、年齢:20歳,身長170cm,体重:60kgでよろしいですか?
このように、sprintfを使えば、複数の数値を文字列にまとめた変数を定義した上で、HTMLとして表示することができます。
※コメントでご指摘を受け、一部修正させていただきました。(2019/6/19)