編集:条件を変更しました..ありがとう
私はtry/exceptionを学ぼうとしています。本来あるべき出力が得られません。通常、1杯または0杯になります。理想的には、9 または 10 にする必要があります。
指示:
NoCoffee クラスを作成し、次のことを行う make_coffee という関数を作成します。 random モジュールを使用して、95% の確率でメッセージを出力して通常どおり戻ることにより、コーヒーのポットを作成します。5% の確率で、NoCoffee エラーを発生させます。
次に、try ブロックと for ループを使用して make_coffee を呼び出して 10 個のポットを作ろうとする関数 attempts_make_ten_pots を作成します。関数 attempts_make_ten_pots は、try ブロックを使用して NoCoffee 例外を処理する必要があり、実際に作成されたポットの数を整数で返す必要があります。
import random
# First, a custom exception
class NoCoffee(Exception):
def __init__(self):
super(NoCoffee, self).__init__()
self.msg = "There is no coffee!"
def make_coffee():
try:
if random.random() <= .95:
print "A pot of coffee has been made"
except NoCoffee as e:
print e.msg
def attempt_make_ten_pots():
cupsMade = 0
try:
for x in range(10):
make_coffee()
cupsMade += 1
except:
return cupsMade
print attempt_make_ten_pots()