Python проблема с кодом. Я сделал простую систему лотереи, используя python. Как остановить переменную b при сбросе на 1000 каждый раз? - PullRequest
0 голосов
/ 23 марта 2020

В упомянутом коде переменная b использовалась для обозначения баланса моего счета. Как это должно работать, изначально баланс аккаунта должен быть 1000. За каждую игру 100 должно быть вычтено, если выиграно, должно получить 900, а в случае проигрыша должно проиграть 100. Все должно происходить в и около б. Но b всегда сбрасывается до 1000. Почему это так?

def rand(k,b):
  import random
  b = b-100
  print("Rs. 100 deducted to buy the ticket. Your present account balance is", b)
  n = random.randint(1,10)
  print("The lottery number that won the price is", n)
  if (k == n):
    b = b+900
    print("Wow, congrats. You won. Here is Rs. 900. Your present account balance is Rs.", b)
  else:
    b =b-100
    print("Shit, you just lost your Rs. 100. Your present account balance is Rs.", b)
  return b


b= 1000
a=0
while(1):
  k = int(input("Enter your coupon number choice from 1-10 to play or enter 000 to exit. Each play costs Rs. 100"))
  if (k==000):
    print("Thank you for playing lottery")
    break
  else:
    rand(k,b)

1 Ответ

2 голосов
/ 23 марта 2020

Вам необходимо присвоить b результат функции rand, чтобы обновить ее значения

b = rand(k, b)

Это потому, что b внутри rand является локальным для функции, это не одно и то же, вы можете использовать разные имена переменных

...