当用户提供某个关键字作为输入时结束函数
当用户在输入中键入特定关键字(例如“关闭”)而不必在每个输入中添加必要的代码时,如何结束函数?基本上,当用户在以下任何输入中的任何位置键入“关闭”一词时,我希望该功能完全停止。我创建了一个函数(见代码底部)并尝试在我的代码中放置/调用它,但不确定将它放在哪里,或者我是否可以用一个函数来做到这一点?如果没有,我怎样才能做到这一点?
def order_coffee():
drink = input("What would you like? (espresso/latte/cappuccino): ")
user_owes = int(0)
if drink == "espresso":
user_owes = round(1.5, 2)
elif drink == "latte":
user_owes = round(2.5, 2)
elif drink == "cappuccino":
user_owes = round(3.0, 2)
print(f"Please insert coins, you owe ${user_owes}.")
quarters = (int(input("How many quarters?: ")) * .25)
dimes = (int(input("How many dimes?: ")) * .1)
nickels = (int(input("How many nickels?: ")) * .05)
pennies = (int(input("How many pennies?: ")) * .01)
user_paid = round(quarters + dimes + nickels + pennies, 2)
print(f"You have inserted ${user_paid}.")
change = round(user_paid - user_owes, 2)
if user_paid >= user_owes:
print(f"Here is ${change} in change.")
print(f"Here is your {drink} ?. Enjoy!")
order_coffee()
else:
print("Sorry that's not enough money. Money refunded.")
order_coffee()
order_coffee()
def off():
if input == "off":
return
回答
创建您自己的input函数并添加所需的行为:
def my_input(*args, **kwargs):
str = input(*args, **kwargs)
if str == "off":
exit()
return str
当用户输入“关闭”时,这将退出整个应用程序,仅退出函数抛出异常,并在函数调用之外捕获它。例如:
def my_input(*args, **kwargs):
str = input(*args, **kwargs)
if str == "off":
raise ValueError('Time to go')
和:
def order_coffee():
try:
# your code
except ValueError as err:
# handle it accordingly
return
更清晰的方法是创建、抛出和处理自定义Exception. 查看此SO Thread以了解如何实现这些自定义异常。