Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 27, 2018 17:59:32

megabait1024@mail.ru
Зарегистрирован: 2018-06-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Оператор if else

Добрый день! Столкнулся с проблемой в коде

  # 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, но выходит ошибка:

Прикреплённый файлы:
attachment Ошибка.jpg (20,1 KБ)

Офлайн

#2 Июнь 27, 2018 19:31:56

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Оператор if else

 if not result or result =="-3":
     print('Произошла ошибка')
else:
     print(result['return'])



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Июнь 27, 2018 22:45:50

megabait1024@mail.ru
Зарегистрирован: 2018-06-07
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Оператор if else

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('Произошла ошибка')

Офлайн

#4 Июнь 27, 2018 23:03:36

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Оператор if else

megabait1024@mail.ru
хотя есть же строчка исключений
И что по вашему делает ваш except Exception:? Ага, выводит на печать ‘Произошла ошибка’ и программа продолжает работать дальше как ни в чем не бывало и вы получите NameError так как в результате исключения переменная result не создалась. Причем этот кусок отработает только если произошло исключение. Если исключения не было, отработает else где происходит выход из функции с возвращением значения.
вам нужно заменить
 else:
     return(result ['return'])
на
 else:
     if not result or result =="-3":
.....
  



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июнь 27, 2018 23:17:02)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version