Форум сайта python.su
Добрый день. Я новичок в программировании. Решил написать небольшую консольную программу для работы. Сначала сделал простой набор if/else - все работало. Решил упростить нагромождение строк и свести все к функции. И все сломалось )) Функция не записывает введенные значения в переменную. Пожалуйста помогите понять. Спасибо.
def change(value, name, a, b): value = input(f'Выберите нужные цифры для выбора {name} ТС - (1 или 2)\n' f'1 - {a}\n' f'2 - {b}\n' f'Введите цифру сюда: ') change(nominal_tc, 'номинала', 100, 50) change(material_tc, 'материала ЧЭ', 'Медь', 'Платина')
Отредактировано iknski (Июль 24, 2020 17:30:38)
Офлайн
Функция, чаще всего, возвращает значение, а не присваивает. Зачем такой финт ушами, как присваивание? Можно же в конце твоей функции добавить return value и она будет возвращать введённое пользователем значение. В этом случае необходимость в первом аргументе отпадает. После доделки твоей функции попробуй выполнить:
x = change('номинала', 100, 50)
print(x)
Офлайн
RafikСделал как вы подсказали и все заработало.
о
def change(name, a, b): value = input(f'Выберите нужные цифры для выбора {name} ТС - (1 или 2)\n' f'1 - {a}\n' f'2 - {b}\n' f'Введите цифру сюда: ') return value nominal_tc = change('номинала', 100, 50)
Офлайн