Практические задания
Практические задания¶
В качестве практики для закрепления темы исключений предлагается воспользоваться следующими двумя файлами, позаимствованными отсюда и переведенными на русский.
"""
Небольшой модуль, разработанный таким образом,
чтобы возбуждать исключения,
когда запущен из файла except_exercise.py
"""
import time
conclude = "And what leads you to that conclusion?"
district = "Finest in the district, sir."
cheese = "It's certainly uncontaminated by cheese."
clean = "Well, it's so clean."
shop = "Not much of a cheese shop really, is it?"
cust = "Customer: "
clerk = "Shopkeeper: "
def fun(reaper):
if reaper == 'spam':
print(s)
elif reaper == 'cheese':
print()
print('Spam, Spam, Spam, Spam, Beautiful Spam')
elif reaper == 'mr death':
print()
return('{}{}\n{}{}'.format(cust, shop, clerk, district))
def more_fun(language):
if language == 'java':
test = [1, 2, 3]
test[5] = language
elif language == 'c':
print('{}{}\n{}{}'.format(cust, conclude, clerk, clean))
def last_fun():
print(cust, cheese)
time.sleep(1)
import antigravity
"""
Упражнения на исключения.
Добавьте блоки `try/exception`.
Ловите как можно более специфичное исключение, нежели чем все ошибки сразу.
"""
from except_test import fun, more_fun, last_fun
# Разберитесь, что за исключение,
# поймайте его и пока в этом обрабатывающем блоке
# попробуйте со вторым элементом списка.
first_try = ['spam', 'cheese', 'mr death']
joke = fun(first_try[0])
# Вот `try/except` блок. Добавьте `else`, печатающий `not_joke`
try:
not_joke = fun(first_try[2])
except SyntaxError:
print('Run Away!')
# Разберитесь, что за исключение,
# поймайте его и пока в этом обрабатывающем блоке
#
# попробуйте вызвать функцию `more_fun` с вторым языком в списке,
# опять присваивая результат к more_joke
#
# Если исключений больше нет,
# то вызовите функцию `more_fun` с последним языком в списке
#
# Наконец, по в блоке `try/except` и независимо от того,
# возникли ли какие-либо исключения,
# вызовите функцию `last_fun` без аргументов (шутка задумана).
langs = ['java', 'c', 'python']
more_joke = more_fun(langs[0])
Сохраните эти файлы под названиями except_test.py
и except_exercise.py
и запустите файл except_exercise.py
.
python except_exercise.py
Возникнет ошибка. Обработайте её. Возникнет новая. И так далее. Продолжайте обрабатывать ошибки, и следуйте инструкции в except_exercise.py
до тех пор, пока они не пропадут полностью. При этом все редакции должны осуществлять в файле except_exercise.py
.