плохо знаком с Python, но учусь на своих способностях и стараюсь делать хорошие практики. Надеясь, что кто-то может указать мне правильное направление для моей программы на питоне: пауэрбол. Это между компьютером и пользователем, где каждый выбирает 3 уникальных (не повторяющихся) числа в диапазоне от 1 до 9 и число в пауэрболе от 1 до 3. Я хотел добавить денежную переменную, которая будет разделена между функцией main () (которая сообщает «добро пожаловать» и «ваши текущие деньги: (деньги)»), а также разделена между функцией сравнения_winnings (), которая сравнивает мои два списка и добавляет сумму к переменной (money).
Я провел некоторые исследования через Google и SO и обнаружил, что размещение моей денежной переменной вне каждой функции превращает ее в «глобальную переменную», что кажется полезным, поскольку она будет использоваться в 2 функциях. Я также узнал, что использование синтаксиса «глобальный» - плохая практика. Тем не менее, код работает нормально, и внутри функции compare_winnings () деньги обновляются. Когда игра запрашивает вас, хотите ли вы играть снова (другая функция), она начинается снова, и деньги возвращаются к своей первоначальной стоимости. (начинается с 20).
def main():
print("Each ticket costs $1. Your winnings will be totaled. Current money is",money, "dollars." )
start = input("\n Are you ready? [y/n]: ")
if start == "y" or start == "yes":
#erased variables for legibility; gathers numbers from computer and user
compare_winnings(actual, chosen,cpb, comp_cpb,money)
else:
play_again()
def compare_winnings(actual, chosen, cpb, comp_cpb,money):
counter = 0
print("You chose: ", chosen) #user-inputted
print("Ticket was actually: ", actual) #random (actual)
same_values = set(actual) & set(chosen)
#print ("These are the values that are the same",same_values)
if len(same_values) > 0:
counter += len(same_values)
print("Numbers correct was : ",counter)
if counter == 1 and cpb != comp_cpb :
print("You won $1")
money += 1
print("total money is:", money)
play_again()
def play_again():
play = input("Do you want to play again? ")
if play == "y" or play == "yes":
main()
else:
print("Program will exit. Thanks for playing.")
Я ожидаю, что переменная money будет обновлена (и сохранена), пока они не решат прекратить играть в игру. Однако, кажется, он перезапускается, когда они решают играть снова или в main ().