やりたいこと
- dictionaryを関数に入力して、entry_objectの面積合計がtarget_dicの各valueを超えた時にそれぞれのkeyを用いて
"{key}がまんじゅうで一杯になるのに{count}分要します。"
を出力したい。
#現状
- '東京ドームがまんじゅうで一杯になるのに45分要します。'で終了してしまう
↓
dicの1つ目のvalueを検討し、returnを返しroopが終了してしまう
(全てのvalueが検討されない)
- 理想
'東京ドームがまんじゅうで一杯になるのに45分要します。'
'地球がまんじゅうで一杯になるのに●分要します。'
'太陽がまんじゅうで一杯になるのに△分要します。'
#コード
python
1def baibai_inn_time_counter_1 (entry_object, target_dic): 2 3 count = 0 4 5 while True: 6 for key, value in target_dic.items(): 7 if entry_object * 2 ** count/5 > value: 8 return "{key}がまんじゅうで一杯になるのに{count}分要します。".format(key = key, count = count) 9 else: 10 count += 5
#関数への入力
python
1input_dic = {"東京ドーム":1240000, "地球":1.08269693243E+21, "太陽":1.1494040321933E+46} 2baibai_inn_time_counter_1(6.5e-5, input_dic)
#出力
'東京ドームがまんじゅうで一杯になるのに45分要します。'
formatについてお調べになりましたか?「python format」でググればどのように使うべきかがわかりそうですが。ちなみに、地球が●としたいのに、1.82..を入力としているのは何故ですか?
>formatについてお調べになりましたか?
以下サイトを確認しております。
https://note.nkmk.me/python-format-zero-hex/
>地球が●としたいのに、1.82..を入力としているのは何故ですか?
本問題は、entry_obectの個数が5分おきに倍々されていくというものでして、東京ドーム・地球・太陽のそれぞれがなん分後にentry_obectで満ちてしまうかという問題です。
そのため1.082..というのは地球の体積です。
数字の意味をお聞きしているのではなく、●と印字したいのですよね?それであれば、●を設定すべきではないのでしょうか?という疑問です。あるいは体積を元に●を印字するようなロジックがあるのでしょうか?
>あるいは体積を元に●を印字するようなロジックがあるのでしょうか?
はい、こちら体積を個数が増幅するentry_obectが満たすには何分かかるかというロジックが関数内if以下にございます。そのため●は体積という入力を受けて時間(分)が出力されます。
回答4件
あなたの回答
tips
プレビュー