前提・実現したいこと
Aidemyというサイトを使用してPythonの勉強を始め、
defで関数を呼び出すこと学びました。
その中で、 return print それぞれをどのように使うかで出力結果が異なったり、
エラーになったり、フリーズ?したりするのですか。なぜこうなっているのかがわかりません。
それぞれについてなぜなのかわかりましたら教えてください。
(どれか一つでもよいのでわかったら教えてください)。
なお@はこのサイトでインデントがわかるように入れています(コードではありません)
出題のURL
https://aidemy.net/courses/3010/exercises/BJcY4tlwef
(1)おそらく正解
def bmi(height, weight):
@@@@keisan=weight / height**2
@@@@print("%.2f" %keisan)
bmi(1.74,80)
出力結果26.42
(2)なぜか出力は、Out[1]とでた。printで出力された結果と異なるのはなぜか?
小数点2桁にも絞れていないのはなぜか?
def bmi(height, weight):
@@@@keisan=weight / height**2
@@@@return(keisan)
@@@@print("%.2f" %keisan)
bmi(1.74,80)
出力結果
Out[1]: 26.42356982428326
(3)これも正解のようですが、(1)とどう使い分けるのでしょうか?
def bmi(height, weight):
@@@@keisan=weight / height**2
@@@@return(keisan)
print("%.2f" %bmi(1.74,80))
出力結果
26.42
(4)これはエラーが出てしまいます。retuenが無いからという気はするのですが、
returnがないと何故出力されないのでしょうか?
def bmi(height, weight):
@@@@keisan=weight / height**2
print("%.2f" %bmi(1.74,80))
(5)これは何も出力されないのですが、何故なのでしょうか?
def bmi(height, weight):
@@@@keisan=weight / height**2
@@@@return(keisan)
@@@@print("%.2f" %bmi(1.74,80))
何も出力されない
(6)なぜか出力は、Out[1]とでた。printで出力された結果と異なるのはなぜか?
小数点2桁にも絞れていないのはなぜか?
def bmi(height, weight):
@@@@keisan=weight / height**2
@@@@return(keisan)
@@@@print("%.2f" %bmi(1.74,80))
bmi(1.74,80)
出力結果
Out[1]: 26.42356982428326
(7)エラーメッセージはでなく、ずっと実行させようとしてフリーズしてしまいます。
ループしてる?何が起きていて、何が悪いのでしょうか?
def bmi(height, weight):
@@@@keisan=weight / height**2
@@@@print("%.2f" %bmi(1.74,80))
bmi(1.74,80)
実行結果
エラーメッセージなく実行が失敗
発生している問題・エラーメッセージ
(4)のエラーメッセージ
TypeErrorTraceback (most recent call last)
<script.py>()
2 keisan=weight / height**2
3
----> 4 print("%.2f" %bmi(1.74,80))
5
TypeError: must be real number, not NoneType
エラーメッセージ
該当のソースコード
Python
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答3件
あなたの回答
tips
プレビュー