, と + を区別して使いこなしたい
質問としては、引数を繋ぐときの , と + は同じルールが適応されるのか。
辞書からvalueを持ってくるときには、自動的に数値は文字列になるのか。
という2点です。
内容が長いのでわかりやすいように質問をピックアップしましたので、以下を読んでいただき、回答いただけると非常に助かります。
まず以下のコードをエスケープシークエンスの練習として書いていました。
a = {'名前':'佐藤', '年齢': 35, '体重': 60, '身長': 170} print(a['名前'], 'さん(', a['年齢'], ')の' '\n' '身長は', a['身長'], 'cmです\n体重は', a['体重'], 'kgです', sep='')
すると
佐藤さん(35)の 身長は170cmです 体重は60kgです
としっかり表示されました。
しかし、ここでa['年齢']の部分ですが、この辞書の年齢のvalueは 35 という数値で文字列ではありません。
そうだとすると、'さん(' などの文字列とstr()なしに 35 は結合できないのでは?と疑問になってしましました。
というのも、 文字列を , でつなぐということは + で文字列を繋ぐと同じ原則が適応されると理解していました。(末尾に,sep=''を用いると全く同じように使えると同時に理解しています。)
そこで、文字列 + 数値 は 文字列 + str(数値)に直さなければならないと同じように考えると、
今回の辞書からもってきた年齢のvalueもstr()で文字列に直さなくてはいけないのでは?と思いました。
一応str()で囲んでみたコードも実行してみたら、同じ結果が得られました。
a = {'名前':'佐藤', '年齢': 35, '体重': 60, '身長': 170} print(a['名前'], 'さん(', str(a['年齢']), ')の' '\n' '身長は', a['身長'], 'cmです\n体重は', a['体重'], 'kgです', sep='')
以上から辞書からvalueを持ってくるときにはvalueが数値であっても文字列であっても、文字列の引数として働くのではと考えました。
しかし、a['名前']のvalueである'佐藤'を見ると'佐藤'ではなく佐藤と''を除いていることに気づき、最終的には
辞書からvalueを取り出すときは、文字列なら''の中身を、それ以外の数値などは数値を文字列に変換して引数とする
と自分の中で結論づけましたが、正しいかわかりません。
以上になります。
まだプログラミングを始めたばかりで用語の理解も不十分かもしれませんが、よろしくお願いします。
変な言い回しも、あれば、指摘していただけるとありがたいです。
補足情報(FW/ツールのバージョンなど)
mac 10.14.1
3step pythonという本
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/17 04:42