Сценарий вложения if-else для выбора типа строки из списка в качестве аргумента функции Python ⇐ Python
-
Anonymous
Сценарий вложения if-else для выбора типа строки из списка в качестве аргумента функции Python
У меня есть функция python, определенная следующим образом:
def fun(name=None): data = [['том'], ['ник'], ['июль']] имя0 = данные[0] # том имя1 = данные[1] # ник имя2 = данные[2] # июля если имя не None: если имя=='том': Имя=имя0 если name=='ник': Имя=имя1 если name=='juli': Имя=имя2 если имя Нет: print('Чтение всех имен') Имя=данные еще: поднять исключение('аргументы не могут быть пустыми. Либо передайте одно имя, либо нет') вернуть имя Это упрощенное представление моего настоящего сценария. Для моего рабочего процесса мне нужно вызвать такую функцию для определенного аргумента типа строки Name, который хранится в виде списка data. Теперь, когда я вызываю эту функцию для tom:
fun('том') Я получаю следующую ошибку:
-------------------------------------------- ------------------------------- Exception Traceback (последний вызов последним) Ячейка In[28], строка 26 23 поднять исключение («аргументы не могут быть пустыми. Либо передайте одно имя, либо нет») 24 возврата Имя ---> 26 веселья('том') Ячейка In[28], строка 23, в fun(name) 21 Имя=данные еще 22: ---> 23 поднять исключение('аргументы не могут быть пустыми. Либо передайте одно имя, либо нет') 24 возврата Имя Исключение: аргументы не могут быть пустыми. Либо передайте одно имя, либо нет. Как вы можете видеть, дерево if пропускается и выполняется либо часть else, либо часть Exception. Почему эта функция пропускает дерево if. Потому что в одном из моих ранних сценариев такая логика работала. Что я делаю не так? Заранее спасибо.
У меня есть функция python, определенная следующим образом:
def fun(name=None): data = [['том'], ['ник'], ['июль']] имя0 = данные[0] # том имя1 = данные[1] # ник имя2 = данные[2] # июля если имя не None: если имя=='том': Имя=имя0 если name=='ник': Имя=имя1 если name=='juli': Имя=имя2 если имя Нет: print('Чтение всех имен') Имя=данные еще: поднять исключение('аргументы не могут быть пустыми. Либо передайте одно имя, либо нет') вернуть имя Это упрощенное представление моего настоящего сценария. Для моего рабочего процесса мне нужно вызвать такую функцию для определенного аргумента типа строки Name, который хранится в виде списка data. Теперь, когда я вызываю эту функцию для tom:
fun('том') Я получаю следующую ошибку:
-------------------------------------------- ------------------------------- Exception Traceback (последний вызов последним) Ячейка In[28], строка 26 23 поднять исключение («аргументы не могут быть пустыми. Либо передайте одно имя, либо нет») 24 возврата Имя ---> 26 веселья('том') Ячейка In[28], строка 23, в fun(name) 21 Имя=данные еще 22: ---> 23 поднять исключение('аргументы не могут быть пустыми. Либо передайте одно имя, либо нет') 24 возврата Имя Исключение: аргументы не могут быть пустыми. Либо передайте одно имя, либо нет. Как вы можете видеть, дерево if пропускается и выполняется либо часть else, либо часть Exception. Почему эта функция пропускает дерево if. Потому что в одном из моих ранних сценариев такая логика работала. Что я делаю не так? Заранее спасибо.
Мобильная версия