Python | Можно ли задать переменную без её вызова
Могу ли я в Python создать переменную, скажем value_1 = input('Введите первое число: '), но сделать так, чтобы, она не вызывалась к примеру там где она прописана (в начале кода), а там где я её вызову. Если есть такая возможность подскажите, пожалуйста, как её реализовать.
Вот код
dia = None
def question2():
value_1 = input('Введите первое число: ')
value_2 = input('Введите второе число: ')
def question1():
dia = input("Выберите действие: 1 - сложить, 2 - вычесть, 3 - умножить, 4 -разделить,\
5 - возвести в степень, 6 - вычесть остаток, 0 - отмена. ")
if dia == '0':
print("See you later!")
con = True
while con:
question1()
question2()
break
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
- Вы можете описать функцию в начале кода, а вызвать её в произвольном месте программы после. Хоть в середине, хоть в конце. Сработает функция в момент вызова, а описание будет, например, в начале кода. Собственно, у вас так и сделано.
- В вашем коде вы не видите содержание переменных, установленных функцией, потому что вы ничего не возвращаете из вызываемых функций. Возвращайте из функции нужные значения через
returnи присваивайте их переменным основной программы. И у вас всё будет. - Можно использовать также указание
globalи сделать ваши локальные переменные внутри функции глобальными, но этого делать строго не рекомендуется. Это часто приводит к путанице и непрозрачности кода. В нормальном коде все параметры функция должна получать на вход в явном виде и все нужные результаты своей работы также возвращать в явном виде черезreturn. Такие функции легко тестировать и есть некоторая гарантия, что они не "сломают" вам состояние вашей программы когда вы этого не ожидаете.
Пример кода:
def question2():
value_1 = input('Введите первое число: ')
value_2 = input('Введите второе число: ')
return value_1,value_2
...
val_1, val2 = question2()