Всем привет дорогие друзья! Решил я сегодня написать не про интереснейшие исключения, а про мельчайшие детали которые наверняка сделают ваш код лучше. Про исключения мы поговорим в конце данной части.
1. Цель урока
Сегодня вам не нужно решать сложные задачи. Обратим внимание на сам код. Мы постараемся сделать его лучше, читабильней! А после этой части перейдем к уже более интересным вещям)
2. Запомни
Теперь запомни одну вещь, а точнее правило. Ты должен не просто прочитать то, что я написал в этом цикле и то что еще напишу. Ты должен понимать код который видишь и пишешь. Никаких "Я выучил Python!" после прочтения данного цикла. Ты должен вникать. Не получается - задавай вопросы) За спрос никто не убьет. А теперь дам вам задание.
Как вы думаете, код ниже является хорошим или плохим?
Код:
def t():
f=input()
return f
def w():
g=input()
return g
f=t()
g=w()
s=f+g
print(s)
И если вы думаете что этот код плохой, то вы как никто прав. Но что же так сильно режет глаз в этом коде?
А что если его немного изменить?
Код:
def oneNum():
num1 = input()
return num1
def twoNum():
num2 = input()
return num2
num1 = oneNum()
num2 = twoNum()
sumNums = num1 + num2
print(sumNums)
Но теперь, хоть немного, но код стал читабельней и меньше режет глаз. Что же нам так не понравилось в первом примере?
Ну вопервых это не информативность названия переменных. Я сам часто допускал данную ошибку. Прошу такого не повторять.
Давайте сравним хорошие и плохие названия переменных.
Код:
myFirstName --- хорошо
my First Name --- не допустимо
my_First_Name --- хорошо
sumNums --- хорошо
sn --- плохо
x --- смотря в каком случае
И так вы поняли, что
- Длинное название переменных - это плохо.
- Название перемнной должно быть информативным.
- Если в переменной сочитаются пару слов то можно записать их через знак нижнего подчеркивания (_) или же слитно, но последующее слово с большой бкувы.
- Название переменной не должно начинатся с большой буквы, цыфры, прочих символов типа $#_!@&*?
Код:
myPinCode = 1467#пинкод
myBankNumber = 2454#номер счета
dataCreated = 8432#дата создания
Можно внести некоторые правки. Просто воспользуемся клавишей Tab))
Код:
myPinCode = 1467 # пинкод
myBankNumber = 2454 # номер счета
dataCreated = 8432 # дата создания
Согласись так читабильней?
Что же, идем далее.
Что не так в этом коде?)
Код:
sumNums = myResult(4, 5)
def myResult(x, y):
return x + y
Ты ответил правильно, если подумал, что ошибка скрыта в использовании функции до ее обьявления.
Запомни!!
Функцию нужно обьявлять перед использованием.
Применять функции стоит в тех случаях, когда фрагмент кода повторяется многократно.
Это что касается вашего кода. И то это всего пищинка того, как улучшить свой код.
Существует множество книг на данную тему. К примеру:
[Стив Макконнал] - Совершенный код
[Роберт Мартин] - Чистый код
[Кеннет Рейтц] - Автостопом по Python
3. Исключения
А теперь перейдем к изучению непосредственно самой темы.Исключения - это своеобразный способ, при котором происходит прирывание работы кода для обработки возникающих ошибок.
Т.е. при возникновении ошибки в коде сработают исключения.
Давайте рассмотрим стандартный пример исключения, когда происходит деление на ноль.
Код:
numOne = 3
numTwo = 0
chastnoe = numOne / numTwo
print(chastnoe)
Когда вы запустите данный код, то на вашем экране выведется ошибка. Это сработало исключение
ZeroDivisionError.
Мы очень часто встречались с исключениями в Python. При использовании не существующей переменной, не обьявленной функции, неудачном импортировании и.т.п.
Зачастую нам нужно обойти исключения и все равно выполнить код. В этом нам поможет конструкция try/except.
В блоке try содержится код, который может вызвать исключения. Если случилось так, что исключение должно сработать, то выполняется код находящийся в блоке except. После чего работа программы завершается.
Пример:
Код:
try:
numOne = 5
numTwo = 0
chastnoe = numOne / numTwo
print(numOne)
except:
print(numOne - 2)
Какое число выведет данный код?
Что же, думаем логически: так как там присутствует деление на 0, то выполнится код находящийся в блоке except дабы не вызвать исключение. И ответом будет - 3.
А что если нужно чтобы какая-либо часть кода была выполнена не зависимо от присутствия ошибки?
Тогда приходит - finaly.
Он выполняется в любом случае.
Код:
try:
print("5" / 3)
except:
print("Error!")
finaly:
print("Good!")
Вы надеюсь поняли каков будет ответ)
Задания:1. Какие из ниже представленных названий переменных являются хорошими?
Код:
thisIsSparta
4ackThePlanet
_myWay
YourFriend
myNumOne
Ответ: 1 и 5
Код:
f=34
num=12
s=f-num
print(s)
Ответ: думай своей головой)
4. Напиши программный код который при возникновении исключения выведет текст:
Обходим исключения!
Код:
try:
....
except:
print("Обходим исключения!")