こんにちは。PyQ開発チームの清原 id:hirokiky です。
PyQメールサポートの中でいただいたご質問とサポートの回答を紹介します。 (質問いただいたご本人様には掲載の許可をいただいております)
Pythonを学習する中や PyQ を利用する中で同じ疑問あれば参考にしてください!
ご質問
演習 - 水ボトルの注文数を決定しよう のprint文、ただのstockと書くとエラーになるのはなぜですか?
stock = 13 print('現在の在庫:' + str(stock) + '本')
回答
strをなしに
'現在の在庫:' + stock + '本'
と書くとエラーになる理由ということですよね。
これは文字列('現在の在庫')と数字(stockの中身13)を足しあわせようとしているのでエラー(TypeError)になります。
Pythonでは文字列と数字は足し算できません。文字列と文字列、数字と数字はできます。
PyQのプログラムでは str(stock) とすることで、数字の 13 を、文字列の '13' に変換しています。
- 数字: 13
- 文字: '13'
(ややこしいですが別のものです。。) 一旦数字を文字列の '13' に変換してから、他の文字列 '現在の在庫:' と足し合わせています。
文字列の生成には .format
が使えます
この最初のクエストでは出ませんが、後のクエストで登場する .format
はよく使われます。
print('現在の在庫:{:d}本'.format(stock))
print関数で表示
また、print関数に3つ値を渡しても表示できます。
print('現在の在庫:', stock, '本')
この場合、引数に渡した値の間にはスペースが入って表示されます。