Python-джедай #14 - Введение в исключения, pass, eval

preview_player
Показать описание
Сегодня мы обсудим достаточно важную тему в Python, а именно - Исключения и как с ними работать.
Также, мы затронем темы таких конструкций, как pass и eval.
Будет интересно =)

Хочешь зарабатывать на своих видео в YouTube?

Жми красную кнопку "Подписаться" под видео :)
Есть вопрос? - Задай его лично мне в наших группах!
===

#Реквизиты для донатства | Поддержи канал!
Z252920168434
R250434217196

Музыкальный трек предоставлен YouTube Audio Library.
Рекомендации по теме
Комментарии
Автор

Ловля покемонов - ерунда, вот ловля исключений это другое дело :)

HopelTheGame
Автор

Как это у него получается. Смотря видео других авторов быстро надоедает и теряется внимание, а здесь же внимаю каждому слову. Автору лайк и подписка

snuflsproduction
Автор

Я просто хотел сказать : "Спасибо Абрахам, за то что ты делаешь для нас!"

ВолковАнтон-ьп
Автор

Время:*3:10 ночи*
Мозг:"ДЕГЕНЕРАТ СПАТЬ ЛОЖИСЬ ТЫ РАСТУЩИЙ ОРГАНИЗМ!!1"
Глаза:*слипаются*
Я:"Самое время посмотреть уроки по питону от хауди!"

UPD:На улице:*светает*

jastzero
Автор

спасибо огромное за подобные всё так легко и понятно идёт что надежда писать коды и разбираться в них растёт с каждым видео-уроком!

oxo_n.s
Автор

Благодаря полученным знаниям за все предыдущие уроки, я сделал маленькую программу(калькулятор). Который не выдаст непонятную ошибку для пользователя, который его использует!

while True:
try:
number_1 = int(input('Введите первое число: '))
if type(number_1) == int:
break
except:
print('Введите только число!\n')

while True:
try:
number_2 = int(input('Введите второе число: '))
if type(number_2) == int:
break
except:
print('Введите только число!\n')

sign = input('Введите знак: ')

while True:
if sign == '+':
print('Результат сложения двух чисел:', number_1 + number_2)
break
elif sign == '-':
print('Результат вычитания двух чисел:', number_1 - number_2)
break
elif sign == '*':
print('Результат умножения двух чисел:', number_1 * number_2)
break
elif sign == '/':
try:
print('Результат деления двух чисел:', number_1 / number_2)
except ZeroDivisionError:
print('На 0 делить нельзя!')
break
else:
sign = input('\nВведите только знак + - * /: ')

ВладиславЧерепня-щх
Автор

очень жду ООП, а особенно работы с декораторами
еще очень круто было бы показать азы работы с саблаймом ( а также основы работы с еммет, препроцессорами + снипетами)

olegvi
Автор

Спасибо за урок Хауди !)



try:
postavit like

podpisatsa

exept:
nagimat poka ne postavitsa like
nagimati poka ne oformisa podpiska

nikitakasyanenko
Автор

уже закончил 14й урок. Остался доволен пройденным материалом.
попытался поработать по всем заученным темам, охватить побольше полученного и внес в свой скромный калькулятор))) ( знаю что его можно сделать в три строки)
#мой калькулятор
print('''введите числа, над которыми
будете проводить арифметические действия''')

print('введите первое число:')
a = float(input())


print('введите второе число:')
b = float(input())

operation = input('введите вид операции: ( -, +, /, *)')

def amounts():
c = a + b
c == float
print('сумма равна:' + str(c))

def difference():
c = a - b
print('разность равна:' + str(c))

def multiplication():
c = a*b
print('результат умножения равен:' + str(c))

def division():
try:
c = a / b
print('отношение чисел равно' + str(c))
if b == 0:
raise ZeroDivisionError
except ZeroDivisionError:
print('решения нет, на ноль делить нельзя')

if operation == '+':
amounts()

elif operation == '-':
difference()

elif operation == '*':
multiplication()

elif operation == '/':
division()

else:
print('есть ошибка')

vologable
Автор

А можешь в конце видео давать практические задания, для того чтобы получить побольше опыта программирования?

postironygamedev
Автор

except
[ɪkˈsept]
читается как "иксэпт"

спасибо за уроки:)

dennykolesnikov
Автор

Он перестал говорить, что если вы что то не поняли - не волнуйтесь, дальше все станет понятно. Я начинаю волноваться.

fry
Автор

Открыл редактор питона
Написал print("халло ворлд") с ошибкой
Закрыл редактор питона

toluncrazy
Автор

Исключение TypeError очень удобно использовать при ограничении типа данных при запросе на ввод от юзверга.
Например при попытке ввести в пинкод какие-либо символы отличные от целочисленных цифр

tedt
Автор

В JavaScript можно делить на 0. Результатом будет Infinity.

alexknockout
Автор

Знаю не один десяток языков программирования, решил разобраться в питоне (а то что все на нём пишут, а я всё c Java на PL/SQL перебиваюсь) в новом для себя формате, т.е не по книге.
Судя по комментам, серию смотрят, в основном, новички в программировании. А для новичка тема исключений явно провалена:
- не сказано, почему исключения лучше, чем проверки, разбросанные по коду. Можно ведь написать if b == 0: print "Всё плохо" else: с=a/b - и тоже будет работать. Правильно было бы хоть немного рассказать о концепции исключений, чем они лучше проверок "по ходу" (чище код, программисту не важно, почему не выполнился целый блок, важно только что, блок не выполнился, разделение обработки разных ошибок в одном блоке по разным слоям/модулям/программистам и т.д. ...)
- не рассказано о вложенных блоках try, о том, что исключения можно ловить не только в том блоке, в котором оно выброшено, но и "выше" по иерархии
- не рассказано, что исключения можно выбрасывать изнутри функций, а ловить из за пределами функции
- совсем плохо рассказано о finally. В приведённом примере что print в блоке finally выполняется, что print за пределами блока try выполняется. В чём разница то? Для иллюстрации finally правильно было бы определённый тип исключения не поймать! А ещё лучше - выбросить его в try тройной вложенности, на одном из уровней исключение не ловить, а на другом поймать и перевыбросить
- Совсем не рассказано, как можно добыть данные из исключения. Например, если у нас в блоке try получается погода в Лондоне, Париже и Жмеринке, и одно из обращений вызвало исключение, то выбрасываться должно исключение WeatherError('Жмеринка'), а программа в блоке except написать: "Извините, погоду в " + (как получить параметр исключения?) + " получить не удалось".
- Из лекции следует, что внутри блока except можно только перевыбросить пойманное исключение, но не выбросить другое. Это что, действительно так?

ГеоргийЕлисеев-як
Автор

А если написать
except Exception as identifier:
print(identifier)
он будет ловить любой эксепшен да еще писать его название :)

johnnyfox
Автор

Спасибо. Узнал полезное.
А с помощью eval я преобразовывал строковые данные чтобы давать одной переменной данные другой переменной в зависимости от переменной. Экспериментировал я. =) Но вот исполнять питоновский код я как-то не догадался.

Alexander_Yablochkin
Автор

Ребят, написал прогу на основе этих уроков, скажите, что думаете):


from pyowm import*

from time import *

from datetime import*





owm =



city = input('Which city\'s do you interested in? ')



observation = owm.weather_at_place(city)



w = observation.get_weather()



temperature =



rain = w.get_rain()



humidity = w.get_humidity()



wind = w.get_wind()



time = datetime.now() + timedelta(days=0, hours=12)



def Forecast(city):

while True:



print('В городе ' + city + ' в' + time.strftime(' %Y-%m-%d %H:%M:%S') +' температура:' + str(temperature) +'°C, ' + ' Влажность: ' + str(humidity) + ' Скорость ветра:' + str(wind) + ' также, в указаном городе статус: ' + w.get_detailed_status())

sleep(3600.0)



Forecast(city)

workshopoleg
Автор

Из 1-часового ролика "Мы не можем создать переменную pogoda и написать там какая-то". Можем же 18:39 )))

chemist_quant