如何解决是否可以用try / except语句结束while循环?
因此,此处的目标是结束我的while loop
或脚本,如果用户的银行存款金额达到0 (zero)
或用户输入0 (zero)
作为下注金额以终止脚本, 。问题是我不允许使用break
语句,尽管该程序可以与exit()
完美配合,但是我也不能使用该语句,因为我们还没有通过本书“到那儿”(讲师希望我们使用书中所学的内容,而不是我们已经知道的内容。
我真的很沮丧。部分原因是因为我在try / except语句方面苦苦挣扎,所以也许我在那儿做错了什么,或者我需要尝试一个不同的循环。也许你们可以帮忙吗?
要在下面发布我的代码。就我而言,一切工作都很好,但是我不能使用exit()
或break
,所以我需要一些其他面向Python基础知识的方法的建议。
那么我可以使用try / except吗?如果是这样,怎么办?
我需要程序继续循环,除非银行业务达到0 (zero)
或用户输入等于0 (zero)
,这就是为什么我选择while loop
的原因。我是否需要使用其他循环方法?
非常感谢您的帮助,在此先感谢大家。
import random
def rollDice(cnt):
die1 = random.randint(1,6)
die2 = random.randint(1,6)
x = int(die1 + die2)
print('Roll #',cnt,'was',x)
return x
def total_bank(bank):
bet = 0
while bet <= 0 or bet > min([500,bank]):
print(f'You have ${bank} in your bank.')
get_bet = input('Enter your bet (or 0 to quit): ')
if get_bet == '0':
print('Thanks for playing!')
exit()
bet = int(get_bet)
return bank,bet
def get_guess():
guess = 0
while (guess < 2 or guess > 12):
try:
guess = int(input('Choose a number between 2 and 12: '))
except ValueError:
guess = 0
return guess
bank = 500
guess = get_guess
rcnt = 1
while rcnt < 4:
rcnt = 0
bank,bet = total_bank(bank)
guess = get_guess()
if guess == rollDice(rcnt+1):
bank += bet * 2
elif guess == rollDice(rcnt+2):
bank += bet * .5
elif guess == rollDice(rcnt+3):
bank = bank
else:
bank = bank - bet
if bank == 0:
print(f'You have ${bank} in your bank.')
print('Thanks for playing!')
exit()
解决方法
您当然可以使用异常退出循环;只需在您的while
循环内引发一个异常,并在循环外捕获它即可:
def total_bank(bank):
bet = 0
try:
while bet <= 0 or bet > min([500,bank]):
print(f'You have ${bank} in your bank.')
get_bet = input('Enter your bet (or 0 to quit): ')
if get_bet == '0':
print('Thanks for playing!')
raise StopIteration()
bet = int(get_bet)
except StopIteration:
pass
return bank,bet
但是更容易的是从循环内部返回:
def total_bank(bank):
bet = 0
while bet <= 0 or bet > min([500,bank]):
print(f'You have ${bank} in your bank.')
get_bet = input('Enter your bet (or 0 to quit): ')
bet = int(get_bet)
if get_bet == '0':
print('Thanks for playing!')
return bank,bet
return bank,bet
,
我对try和except函数不是非常了解,但是对于try块,您可能会引发错误并像这样结束程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。