Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 23, 2021 00:40:49

Lamer228
Зарегистрирован: 2021-01-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по присваиванию значения переменной

Суть такова: мне нужно присвоить определенное значение глобальной переменной. Но присвоить его надо не в самом начале, а после выполнения определенного условия, а именно выбора. По факту: есть глобальная переменная, которой присвоена в самом начале пустая строка. Потом идёт функция, где юзер должен выбрать между двумя вариантами, и только после этого, в зависимости от выбора - будет присвоено значение глобальной переменной. Сам сидел долго методом тыка пытался сделать, читал про переменные. В общем не понимаю, расскажите как это сделать, пожалуйста. Код примера прилагается

Прикреплённый файлы:
attachment эксперимент с присваиванием.py (524 байта)

Офлайн

#2 Янв. 23, 2021 01:01:58

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Вопрос по присваиванию значения переменной

Вот тут https://habr.com/ru/company/otus/blog/487952/ достаточн просто описано про области видимости:
Вот тут уже более подробно про пространство имен и области видимости:
https://medium.com/nuances-of-programming/%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0-%D0%B8%D0%BC%D0%B5%D0%BD-%D0%B8-%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D0%B8-%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8-%D0%B2-python-daf7fcddbaba
Хотя в данном случа глобальная переменная вовсе не нужна

 card = ''
    
def OneChoice():
    choice = ''
    while choice != '1' and choice != '2':
        print('Мне нужно сделать выбор: карта есть(1) или карты нет(2)...')
        choice = input()
    return choice
def CheckChoice(chosenChoice):
    friendlyChoice = (1)
    if chosenChoice == str(friendlyChoice):
        return 'есть'
    else:
        return 'нет'
ChoiceNumber = OneChoice()
card = CheckChoice(ChoiceNumber)
print(card)
Но если таки нужна то нужно обьявить переменную глобальной:
 def CheckChoice(chosenChoice):
    global card
 ....
       card = 'есть'
....
       card = 'нет'



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Янв. 23, 2021 01:02:51)

Офлайн

#3 Янв. 23, 2021 02:07:23

Lamer228
Зарегистрирован: 2021-01-11
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по присваиванию значения переменной

PEHDOM
Вот тут https://habr.com/ru/company/otus/blog/487952/ достаточн просто описано про области видимости:Вот тут уже более подробно про пространство имен и области видимости:https://medium.com/nuances-of-programming/%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0-%D0%B8%D0%BC%D0%B5%D0%BD-%D0%B8-%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D0%B8-%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8-%D0%B2-python-daf7fcddbabaХотя в данном случа глобальная переменная вовсе не нужна
Спасибо большое!

Офлайн

#4 Янв. 23, 2021 03:19:33

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9897
Репутация: +  855  -
Профиль   Отправить e-mail  

Вопрос по присваиванию значения переменной

Lamer228
Суть такова: мне нужно присвоить определенное значение глобальной переменной.
У тебя все переменные должны быть локальными. А глобальных переменных быть вообще не должно ни одной. Как это сделать? Читай литературу и код хороших программ. Когда научишься так делать, вот тогда и будешь глобальные переменные делать. Но это будет уже совсем другой уровень. Ты будешь знать, зачем ты её делаешь, хотя можешь без неё легко обойтись.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version