Найти - Пользователи
Полная версия: Оператор if else
Начало » Python для новичков » Оператор if else
1
megabait1024@mail.ru
Добрый день! Столкнулся с проблемой в коде
  # coding: utf8
from zeep import Client
try:
    Number = int (input())
    client = Client('URL')
    result = client.service.Web(Number)
except Exception:
     print('Произошла ошибка')
else:
     return(result ['return'])
if (result =="-3") and (result == ""){
   print('Произошла ошибка')
}else:
     print(result['return'])
При вводе номера карты от сервиса получаем ее баланс, баланс может быть только положительный, но если введен не верный номер карт приходит значение -3, решил воспользоваться оператором if else, но выходит ошибка:
Rodegast
 if not result or result =="-3":
     print('Произошла ошибка')
else:
     print(result['return'])
megabait1024@mail.ru
Rodegast
Теперь выводит так
089564875554
Произошла ошибка
Traceback (most recent call last):
File "a.py", line 11, in <module>
if not result or result =="-3":
NameError: name 'result' is not defined
хотя есть же строчка исключений
 except Exception:
     print('Произошла ошибка')
PEHDOM
megabait1024@mail.ru
хотя есть же строчка исключений
И что по вашему делает ваш except Exception:? Ага, выводит на печать ‘Произошла ошибка’ и программа продолжает работать дальше как ни в чем не бывало и вы получите NameError так как в результате исключения переменная result не создалась. Причем этот кусок отработает только если произошло исключение. Если исключения не было, отработает else где происходит выход из функции с возвращением значения.
вам нужно заменить
 else:
     return(result ['return'])
на
 else:
     if not result or result =="-3":
.....
  
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB