Наоми Седер - Python. Экспресс-курс

Тут можно читать онлайн Наоми Седер - Python. Экспресс-курс - бесплатно полную версию книги (целиком) без сокращений. Жанр: Программы, издательство Питер, год 2019. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Python. Экспресс-курс
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2019
  • ISBN:
    978-5-4461-0908-1
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Наоми Седер - Python. Экспресс-курс краткое содержание

Python. Экспресс-курс - описание и краткое содержание, автор Наоми Седер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Вы уже умеете кодить на одном или нескольких языках программирования? Тогда настала пора пройти экспресс-курс Python. Впервые на русском языке выходит новое издание одной из самых популярных книг издательства Manning. С помощью этой книги вы можете быстро перейти от основ к управлению и структурам данных, чтобы создавать, тестировать и развертывать полноценные приложения.
Наоми Седер рассказывает не только об основных особенностях языка Python, но и его объектно-ориентированных возможностях, которые появились в Python 3. Данное издание учитывает все изменения, которые произошли с языком за последние 5 лет, а последние 5 глав рассказывают о работе с большими данными.

Python. Экспресс-курс - читать онлайн бесплатно полную версию (весь текст целиком)

Python. Экспресс-курс - читать книгу онлайн бесплатно, автор Наоми Седер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

3.3.6. Исключения

Исключения (ошибки) перехватываются и обрабатываются сложной командой try-except-else-fnally . Эта команда также может перехватывать и обрабатывать

исключения, которые вы определяете и инициируете самостоятельно. Любое не-перехваченное исключение приводит к выходу из программы. В листинге 3.1 про-демонстрирована базовая обработка исключений.

Листинг 3.1. Файл exception.py

class EmptyFileError(Exception): 

pass

filenames = ["myfile1", "nonExistent", "emptyFile", "myfile2"] for file in filenames:

try: 

f = open(file, 'r')

line = f.readline() 

if line == "":

f.close()

raise EmptyFileError("%s: is empty" % file) 

except IOError as error:

print("%s: could not be opened: %s" % (file, error.strerror)

except EmptyFileError as error:

print(error)

else: 

print("%s: %s" % (file, f.readline()))

finally:

print("Done processing", file) 

Здесь мы определяем собственный тип исключения, наследующий от базового типа Exception  . Если исключение IOError или EmptyFileError произойдет во время выполнения команд в блоке try , выполняется соответствующий блок except  . Исключение IOError может инициироваться в точке  , а исключение EmptyFileError — в точке  . Секция else не является обязательной  , она выпол-няется в том случае, если выполнение блока try обошлось без исключений (кстати, в этом примере в блоках except можно использовать команды continue ). Секция fnally также не обязательна  , она будет выполнена в конце блока независимо от того, было выдано исключение или нет.

3.3.7. Обработка контекста с ключевым словом withБолее элегантный способ реализации паттерна try-except-fnally основан на ис-пользовании ключевого слова with и менеджера контекста. Python определяет менеджеров контекста для таких операций, как работа с файлами, но разработчик может определять собственных менеджеров контекста. Одно из преимуществ менеджеров контекста заключается в том, что они могут определять (и обычно определяют) завершающие действия по умолчанию, которые выполняются всегда независимо от того, происходило исключение или нет. В листинге 3.2 показано открытие и чтение файла с использованием with и менед-жера контекста.

Листинг 3.2. Файл with.py

filename = "myfile.txt"

with open(filename, "r") as f:

for line in f:

print(f)

Здесь ключевое слово with создает менеджера контекста, который инкапсулирует функцию open и следующий за ней блок. В данном случае заранее определенное завершающее действие менеджера контекста закроет файл, даже если произошло исключение, поэтому при условии, что выражение в первой строке будет выполнено без исключения, файл всегда будет закрыт. Этот код эквивалентен следующему: filename = "myfile.txt"

try:

f = open(filename, "r")

for line in f:

print(f)

except Exception as e:

raise e

finally:

f.close()

3.4. Создание модуля

Вы можете легко создавать собственные модули, которые импортируются и ис-пользуются точно так же, как модули встроенных библиотек Python. В листинге 3.3 создается простой модуль с одной функцией, которая предлагает пользователю ввести имя файла и подсчитывает количество вхождений слов в этом файле. Листинг 3.3. Файл wo.py

"""Модуль wo. Содержит функцию: words_occur()""" 

# Функции интерфейса 

def words_occur():

"""words_occur() - подсчитывает вхождения слов в файле.""" # Запросить у пользователя имя файла.

file_name = input("Enter the name of the file: ")

# Открыть файл, прочитать его и сохранить слова в списке. f = open(file_name, 'r')

word_list = f.read().split() 

f.close()

# Подсчитать количество вхождений каждого слова в файле. occurs_dict = {}

for word in word_list:

# Увеличить счетчик для данного слова.

occurs_dict[word] = occurs_dict.get(word, 0) + 1

# Вывести результаты.

print("File %s has %d words (%d are unique)" \ 

% (file_name, len(word_list), len(occurs_dict))) print(occurs_dict)

if __name__ == '__main__': 

words_occur()

Строки документации — стандартный способ документирования модулей, функций, методов и классов  . Комментарий состоит из всех символов, начинающихся с #  . Функция read возвращает строку, содержащую все символы в файле  , а функция split возвращает список слов строки, «разбитой» по символам-пропускам. Сим-вол \ позволяет продолжить длинную команду в нескольких строках программы  . Эта команда if позволяет выполнить программу как сценарий, для чего следует ввести команду python wo.py в командной строке  . Если разместить файл в одном из каталогов, входящих в путь поиска модулей из переменной sys.path , его можно будет импортировать командой import точно так же, как любой встроенный библиотечный модуль:

>>> import wo

>>> wo.words_occur() 

Функция вызывается  с тем же синтаксисом атрибутов, который используется для функций библиотечных модулей.

Обратите внимание: если изменить файл wo.py на диске, команда import не отразит эти изменения в том же интерактивном сеансе. В таких ситуациях можно восполь-зоваться функцией reload из библиотеки imp :

>>> import imp

>>> imp.reload(wo)

Для больших проектов существует обобщение концепции модуля — пакеты по-зволяют легко группировать модули в каталоге или дереве подкаталогов, чтобы затем импортировать и использовать для обращения к ним иерархические ссылки вида пакет.субпакет.модуль . В сущности, для этого потребуется лишь создать (возможно, пустой) инициализационный файл для каждого пакета или субпакета.

3.5. Объектно-ориентированное программированиеВ Python реализована полноценная поддержка ООП. В листинге 3.4 показана заго-товка простого модуля для графического редактора. Листинг всего лишь дает пред-ставление о возможностях Python для читателей, уже знакомых с ООП. Выноски поясняют связь синтаксиса и семантики Python со стандартными возможностями, присутствующими в других языках.

Листинг 3.4. Файл sh.py

"""Модуль sh. Содержит классы Shape, Square и Circle""" class Shape: 

"""Класс Shape: содержит метод move"""

def __init__(self, x, y): 

self.y = self.y + deltaY

class Square(Shape):

"""Класс Square: наследует от Shape"""

def __init__(self, side=1, x=0, y=0):

Shape.__init__(self, x, y)

self.side = side

class Circle(Shape): 

"""Класс Circle: наследует от Shape и содержит метод area""" pi = 3.14159 

def __init__(self, r=1, x=0, y=0):

Shape.__init__(self, x, y) 

self.radius = r

def area(self):

"""метод area класса Circle: возвращает площадь круга."""

return self.radius * self.radius * self.pi

def __str__(self): 

return "Circle of radius %s at coordinates (%d, %d)"\

% (self.radius, self.x, self.y)

Классы определяются ключевым словом class  . Метод-инициализатор экземпля-ра (конструктор) класса всегда называется __init__  . Здесь создаются и иници-ализируются переменные экземпляров x и y  . Методы, как и функции, опреде-ляются ключевым словом def  . Первый аргумент любого метода по соглашению называется self . При вызове метода self присваивается ссылка на экземпляр, для которого был вызван метод. Класс Circle наследует от класса Shape  , а в точке  определяется переменная класса. Класс в своем инициализаторе должен явно вы-звать инициализацию базового класса  . Метод __str__ используется функцией print  . Другие специальные атрибуты методов обеспечивают перегрузку опера-торов или используются встроенными методами, такими как функция вычисления длины ( len ).

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Наоми Седер читать все книги автора по порядку

Наоми Седер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Python. Экспресс-курс отзывы


Отзывы читателей о книге Python. Экспресс-курс, автор: Наоми Седер. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x