Python. Как вызвать функцию внутри условного оператора if?
Мне нужно вызвать функцию пароля в коде внутри if (пишу калькулятор). При попытке вызова появляется ошибка NameError. Можно ли вообще вызвать её?
def admpswd(validpass):
validpass = 123
return validpass
Код с вызовом:
elif (changeint == 3):
print("Введите пароль:\n")
mainpass = admpswd(validpass)
Pswdinput = int(input())
if (Pswdinput == mainpass):
print("Отлично! Добро пожаловать!")
else:
print("Неверный пароль")
break
else: break
Код ошибки:
Traceback (most recent call last):
File "W:\****\CALC\main.py", line 34, in <module>
mainpass = admpswd(validpass)
NameError: name 'validpass' is not defined
Ответы (2 шт):
Автор решения: Danis
→ Ссылка
у вас в функции admpswd переменная validpass не используется в том смысле что не важно что там будет поэтому от неё надо избавиться
def admpswd():
validpass = 123
return validpass
и место
mainpass = admpswd(validpass)
писать
mainpass = admpswd()
Автор решения: Serg Bocharov
→ Ссылка
Правильнее было бы функцию поменять на:
def admpswd(validpass):
return validpass == 123
Тогда код упростится:
elif (changeint == 3):
print("Введите пароль:\n")
Pswdinput = int(input())
if admpswd(Pswdinput):
print("Отлично! Добро пожаловать!")
else:
print("Неверный пароль")
break
else: break