У меня есть функция, которая запрашивает некоторые конкретные данные.У меня есть другая функция, которая принимает входные данные, и если это то, что должно быть, она присваивает переменной, из которой она была вызвана.
Проблема в том, что если я получу неправильное значение, то он всегда вернет NoneType
объект, даже если я получу хороший ответ во второй раз.
Я попытался удалить clear()
.Я пытался добавить больше возврата, даже там, где ответ не должен проходить.Я попытался добавить второй аргумент в функцию с именем переменной, которую я пытаюсь присвоить значению
def ask_input_string(text):
''' Takes only one argument. This function asks for input when it is called and returns the value but with the argument provided as text. '''
variable=input(text)
if variable=="":
print("\nField must not be empty")
ask_input_string(text)
try:
int(variable)
print("\nPlease enter a name!")
ask_input_string(text)
except ValueError:
return variable
def menu_add():
clear()
print("\nPlease add the data required!\n")
nume=ask_input_string("Name of animal: ")
animal_type=ask_input_string("\nAnimal Type: ")
Ожидаемый результат:
Если я добавлю неправильное значение, он запрашиваетправильный.Я даю правильный, и он присваивает переменной, из которой он был вызван.
Фактический результат:
Если я даю неправильный ответ хотя бы 1 раз, то даже если я получу правильныйВо-первых, он всегда будет присваивать NoneType
переменной, из которой он был вызван.
Если я даю правильный ответ в первый раз, это работает.Это не работает, если я даю неправильный ответ.