プロが教える店舗&オフィスのセキュリティ対策術

初心者ですが

def divide(x, y):
try:
print('%d/%d = %d' % (x,y,x/y))
except ZeroDivisionError:
print('ゼロ除算例外が発生しました。')

divide(6, 8)
divide(6, 0)

とすると

答えは
6/8 = 0
ゼロ除算例外が発生しました。とでるんですが。


print('%d/%d = %d' % (x,y,x/y))の意味は どういうことなんでしょうか
わかりやすく お願いいたします。%dなども意味が分かりません

A 回答 (2件)

詳細は


https://note.nkmk.me/python-print-basic/
の「パーセント%を使うprintf形式」を参照してください。

print('%d/%d = %d' % (x,y,x/y))

は、

print('①/② = ③' % (P1,P2,P3))

としたとき
①へ整数を出力する
②へ整数を出力する
③へ整数を出力する
P1:①へ出力する値(x 値は6)
P2:②へ出力する値(y 値は8)
P3:③へ出力する値(x/y 値は0)
という意味です。

divide(6, 8)を実行すると
6/8 = 0 が表示されます。

divide(6, 0)を実行すると
x/yの演算で、0で割っているので
ゼロ除算例外が発生しました。 が表示されます。
    • good
    • 0

??


そーとー古い本使って勉強してるの?
止めた方が良さそうなんだが。

例えば、現行のPython(3.8以上?)だと

>>> 6/8
0.75
>>>

となって0にはならない。
0になるのは相当前のPythonだぜ?

あと、

> print('%d/%d = %d' % (x,y,x/y))

これも現行のPythonにそぐわない。
今だとこう書く方が好まれる筈だ。

print(f'{x}/{y} = {x/y}')

だから、

> %dなども意味が分かりません

意味が分からなくて結構。
取り敢えず使ってる本が古そうなんで、Pythonの公式リファレンスで確認した方がいい。

フォーマット済み文字列リテラル:
https://docs.python.org/ja/3/reference/lexical_a …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!