问题描述
我希望用户继续玩此游戏,直到money_amount中的金额等于或小于0。我该怎么办?
import numpy as np
random_number = np.random.randint(1,6)
money_amount = 10
try:
user_wager = int(input('Your wager: '))
if (user_wager < 0) or (user_wager > money_amount):
print("You don't have that amount of money!")
except(ValueError):
print('Enter a numerical value!')
try:
user_guess = int(input('Guess: '))
if (user_guess < 1) or (user_guess > 5):
print('Please choose a number between 1 and 5!')
elif user_guess == random_number:
money_amount += user_wager
print(f'Correct! You now have ${money_amount}!')
else:
money_amount -= user_wager
print(f'Wrong! The number was {random_number} and you now have ${money_amount}.')
except(ValueError):
print('Choose a number!')
解决方法
执行此操作的最佳方法是使用while
循环。从Wiki:
虽然像ForLoop这样的循环用于重复代码部分-但与for循环不同,while循环不会运行n次,但是直到不再满足定义的条件为止。如果该条件最初为假,则将完全不执行循环体。
对于您的游戏,您想循环播放“玩家”拥有“超过”“ 0”美元的货币。因此,您的循环将是:
while money_amount > 0:
# game logic
,
您可以轻松地做到:
while money_amount > 0:
#game
或这种方式:
while 1:
#game
if money_amount <= 0:
break
,
您可以使用此逻辑
while True:
if money_amount > 0:
break