Простая игра с терминалом coinflip не будет обновлять переменную

#python

Вопрос:

Я пытаюсь закодировать простую игру coinflip с функцией азартных игр. Моя проблема в том, что всякий раз, когда он запускается, он не обновляет balance переменную. Есть какие-нибудь предложения?

 import random  balance = 10 win = "Congrats! You have won " lose = "That's too bad, you lost this time! You now have "    start_game = False while True:  choice = input("Please use one of these commands 'flip', 'balance', or 'end game'. ")  if choice == "flip":  start_game = True  break  elif choice == "balance":  print(balance)  elif choice == "end game":  break  else:  print("Please use one of the listed commands!")  if start_game == True:  while True:  result = random.randint(1,2)  if result == 1:  result = True  elif result == 2:  result = False     gamble_amount = input("How much would you like to flip? You have "   str(balance)   " coins. ")  if str(gamble_amount) == "balance":  print(balance)  elif int(gamble_amount) lt;= int(balance) and result == True:  int(gamble_amount) * 2  int(balance)   int(gamble_amount)  print(win   str(gamble_amount)   "!"   " You now have "   str(balance)   "!")  elif int(gamble_amount) lt;= int(balance) and result == False:  int(balance) - int(gamble_amount)  print(lose   str(balance)   " coins!")  

Комментарии:

1. Всякий раз , когда вы хотите изменить значение переменной , например balance , вам нужно позвонить balance = new_value , что бы это ни new_value было. Я заметил , что, кроме начального balance = 10 , вы никогда на самом деле не обновляете значение balance .

2.Есть несколько мест, где вы просто выполняете формулу, но на самом деле не присваиваете результаты переменной, так что… ничего не происходит. Например: int(gamble_amount) * 2 и int(gamble_amount) * 2 . Вместо этого я предполагаю, что вы, вероятно, хотите, чтобы это было: balance = balance (gamble_amount * 2) . И тогда в вашем elif int(balance) - int(gamble_amount) должно быть balance = int(balance) - int(gamble_amount) .

3. int(gamble_amount) * 2 , int(balance) int(gamble_amount) и int(balance) - int(gamble_amount) не делает ничего полезного. Вы просто вычисляете значение, но никогда не используете его или не сохраняете, вы просто вычисляете его и выбрасываете результат.

4. Кроме того, все эти отливки не нужны. Вам не нужно этого делать str(gamble_amount) , потому что это уже строка, и вам не нужно этого делать int(balance) , потому что это уже целое число.

5. Спасибо всем вам за помощь. @JNevill Теперь это определенно имеет смысл, и я вижу, в чем моя проблема, и понимаю, как ее исправить.