Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 1, 2019 15:18:48

Whiteflower
Зарегистрирован: 2019-07-08
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Обновление переменной

Добрый день.Недавно начал изучать Python.Создал простейший код.“Орел и решка”.
coin_flip(*ставка*, *Орел/ решка*).Программа работает,действительно отнимает ставку от суммы при проигрыше и прибавляет при выйгрыше, но дело в том,что переменная “money” не обновляется. Т.е. При выйгрыше 100 монет будет 1100,при повторном выйгрыше тоже 1100 вместо 1200.Я понимаю,что не обновляется из-за отсутствующих элементов,пробовал изменить/добавить,но из-за нехватки знаний не смог.

 import random
money = 1000
def coin_flip(bet,method):
    if bet > money:
        print("Not enough money")
    # Орел
    
    elif method == "Heads":
        method = 0
        num = random.randint(0, 1)
        if num == 0:
            plus_mon = money + bet
            print("You win " + str(bet) + ". Now you balance is " + str(plus_mon))
      
        elif num == 1:
            minus_mon = money - bet
            print("You lose " + str(bet) + ". Now you balance is " + str(minus_mon))
            return 
    
  # Решка
  
    elif method == "Tails":
        method = 1
        num = random.randint(0, 1)
        if num == 0:
            minus_mon = money - bet
            print("You lose " + str(bet) + ". Now you balance is " + str(minus_mon))
        elif num == 1:
            plus_mon = money + bet
            print("You win " + str(bet) + ". Now you balance is " + str(plus_mon))
            return


Отредактировано Whiteflower (Авг. 1, 2019 15:20:04)

Офлайн

#2 Авг. 1, 2019 18:27:38

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Обновление переменной

Во первых, ты переменную money нигде не изменяешь в своем коде. Во вторых, чтобы ее изменить нужно тебе ознакомиться с областями видимости
Почитай про области видимости и тогда возможно все поймешь и разберешься… Если не получится, то возвращайся на форум. Иначе, потом будешь плавать в этом вопросе…

Офлайн

#3 Авг. 1, 2019 18:27:52

@cckyi_boxxx
От:
Зарегистрирован: 2012-01-13
Сообщения: 181
Репутация: +  14  -
Профиль   Отправить e-mail  

Обновление переменной

проблема в том что вы не меняете глобальную переменную, а создаете новые minus_mon и plus_monкогда надо так

 money += bet
money -= bet



Офлайн

#4 Авг. 1, 2019 19:40:26

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Обновление переменной

@cckyi_boxxx
надо так money -= bet
 a=3
def f():
    a+=1
    print(a)
f()
Traceback (most recent call last):
...
UnboundLocalError: local variable 'a' referenced before assignment

Желательно самому знать язык чтобы советовать.



Офлайн

#5 Авг. 1, 2019 20:55:41

Whiteflower
Зарегистрирован: 2019-07-08
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Обновление переменной

Romissevd
Во первых, ты переменную money нигде не изменяешь в своем коде. Во вторых, чтобы ее изменить нужно тебе ознакомиться с областями видимостиПочитай про области видимости и тогда возможно все поймешь и разберешься… Если не получится, то возвращайся на форум. Иначе, потом будешь плавать в этом вопросе…
Спасибо за совет.Начинаю изучать.Если будут вопросы напишу.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version