Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Язык Python в медицинских системах искусственного интеллекта. Ч.1. Введение в программирование на языке Python. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
853 Кб
Скачать

Пакеты позволяют создавать иерархическую структуру модулей.

Создание пакета:

1.создайте папку с именем пакета, например, my_package.

2.внутри папки создайте файл __init__.py. этот файл может быть

пустым или содержать код инициализации пакета. 3. добавьте модули в пакет.

Структура пакета: my_package/

__init__.py module1.py module2.py

Использование пакета:

● импорт модуля из пакета:

from my_package import module1

result = module1.some_function()

● импорт конкретной функции:

from my_package.module2 import another_function

another_function()

Пример использования пакетов в проекте:

организация кода по функциональным областям.

повышение читаемости и поддерживаемости кода.

3.2.Работа с файлами

3.2.1. Открытие и закрытие файлов

Открытие файла:

используется функция open().

синтаксис:

file_object = open('filename.txt', mode)

31

Режимы открытия:

'r' — чтение (по умолчанию).

'w' — запись (создает новый файл или перезаписывает существующий).

'a' — добавление (дописывает в конец файла).

'b' — бинарный режим (используется вместе с другими режимами, например, 'rb').

Закрытие файла:

после работы с файлом необходимо его закрыть:

file_object.close()

Контекстный менеджер with:

рекомендуется использовать with для автоматического закрытия файла:

with open('filename.txt', 'r') as file_object: data = file_object.read()

2.2 Чтение и запись данных Чтение из файла:

● чтение всего содержимого:

with open('filename.txt', 'r') as f: content = f.read()

● чтение построчно:

with open('filename.txt', 'r') as f: for line in f:

print(line.strip())

● чтение определенного количества символов: with open('filename.txt', 'r') as f:

data = f.read(10) # Читает первые 10

символов

Запись в файл:

● запись строки:

with open('filename.txt', 'w') as f: f.write('Hello, World!')

32

● запись списка строк:

lines = ['Первая строка\n', 'Вторая строка\n']

with open('filename.txt', 'w') as f: f.writelines(lines)

3.2.2.Работа с CSV и JSON файлами

Модуль csv:

● чтение CSV-файла: import csv

with open('data.csv', 'r') as csvfile: reader = csv.reader(csvfile)

for row in reader: print(row)

● запись в CSV-файл: import csv

data = [['Имя', 'Возраст'], ['Анна', '30'], ['Иван', '25']]

with open('data.csv', 'w', newline='') as csvfile:

writer = csv.writer(csvfile) writer.writerows(data)

Модуль json:

● чтение JSON-файла: import json

with open('data.json', 'r') as jsonfile: data = json.load(jsonfile) print(data)

33

● запись в JSON-файл: import json

data = {'Имя': 'Анна', 'Возраст': 30} with open('data.json', 'w') as jsonfile:

json.dump(data, jsonfile)

3.3. Обработка исключений

3.3.1. Понятие исключений

Что такое исключение?

Исключение — это событие, которое возникает при ошибке во время выполнения программы.

Исключения прерывают нормальный ход программы. Примеры исключений:

ZeroDivisionError: деление на ноль.

FileNotFoundError: файл не найден.

ValueError: некорректное значение.

TypeError: неправильный тип данных.

3.3.2.Блоки try, except, finally

Обработка исключений:

try: блок кода, в котором может возникнуть исключение.

except: блок, который перехватывает и обрабатывает исключение.

finally: блок, который выполняется в любом случае.

Синтаксис: try:

#Код, который может вызвать исключение except ExceptionType:

#Код обработки исключения

finally:

34

# Код, который выполнится в любом случае Пример:

try:

number = int(input("Введите число: ")) result = 10 / number print(f"Результат: {result}")

except ZeroDivisionError: print("Ошибка: деление на ноль!")

except ValueError:

print("Ошибка: некорректное значение.") finally:

print("Завершение программы.")

3.3 Создание собственных исключений Определение собственного исключения:

● создайте класс, наследующий от Exception. class CustomError(Exception):

pass

Использование собственного исключения: def check_value(value):

if value < 0:

raise CustomError("Значение не может быть отрицательным.")

try:

check_value(-5) except CustomError as e:

print(f"Произошла ошибка: {e}")

35

3.4. Объектно-ориентированное программирование

3.4.1. Классы и объекты

Основные понятия:

Класс — это шаблон или “чертеж” для создания объектов.

Объект — экземпляр класса с конкретными значениями атрибутов.

Создание класса:

class Person:

def __init__(self, name, age): self.name = name

self.age = age

Создание объекта:

person1 = Person("Анна", 30) print(person1.name) # Вывод: Анна

3.4.2. Наследование

Что такое наследование?

Механизм, позволяющий создавать новый класс на основе существующего.

Новый класс (дочерний) наследует атрибуты и методы роди-

тельского класса. Пример наследования:

class Employee(Person):

def __init__(self, name, age, position): super().__init__(name, age) self.position = position

Использование:

employee = Employee("Иван", 25, "Инженер") print(employee.name) # Вывод: Иван print(employee.position) # Вывод: Инженер

36

3.4.3. Полиморфизм

Понятие полиморфизма:

возможность использования одного интерфейса для разных типов данных.

методы с одинаковым именем могут вести себя по-разному в разных классах.

Пример:

class Animal:

def sound(self): pass

class Cat(Animal): def sound(self):

print("Мяу")

class Dog(Animal): def sound(self):

print("Гав")

animals = [Cat(), Dog()] for animal in animals:

animal.sound()

Вывод: Мяу Гав

4.4 Инкапсуляция Что такое инкапсуляция?

Сокрытие внутренней реализации класса от внешнего мира.

Доступ к данным класса осуществляется через методы. Пример приватных атрибутов:

в Python нет настоящей приватности, но существует соглашение:

Атрибуты с одним подчеркиванием _attribute считаются защи-

щенными (protected).

37

– Атрибуты с двумя подчеркиваниями __attribute считаются приватными (private).

class BankAccount:

def __init__(self, balance): self.__balance = balance

def deposit(self, amount): self.__balance += amount

def get_balance(self): return self.__balance

account = BankAccount(1000) account.deposit(500) print(account.get_balance()) # Вывод: 1500

3.5. Генераторы и итераторы

3.5.1. Итераторы в Python

Что такое итератор?

Объект, который поддерживает протокол итерации: методы

__iter__() и __next__().

Позволяет перебирать элементы коллекции последовательно. Создание итератора:

class MyIterator:

def __init__(self, limit): self.limit = limit self.current = 0

def __iter__(self):

38

return self

def __next__(self):

if self.current < self.limit: number = self.current self.current += 1

return number else:

raise StopIteration

for num in MyIterator(5): print(num)

# Вывод: 0 1 2 3 4

3.5.2. Генераторы и yield

Что такое генератор?

Специальная функция, которая возвращает итератор и использует ключевое слово yield.

Позволяет создавать итераторы более простым способом. Пример генератора:

def my_generator(n): for i in range(n):

yield i * i

for num in my_generator(5): print(num)

# Вывод: 0 1 4 9 16

3.5.3. Генераторные выражения

Синтаксис генераторных выражений:

похож на списковые включения, но использует круглые скобки.

39

gen_expr = (x * x for x in range(5))

for num in gen_expr: print(num)

# Вывод: 0 1 4 9 16

Преимущества:

меньшеепотреблениепамяти,таккакэлементыгенерируются по мере необходимости.

3.6.Декораторы

3.6.1. Понятие декораторов

Что такое декоратор?

Функция, которая принимает другую функцию и расширяет ее функциональность без изменения ее кода.

Используется для повторного использования кода и повыше-

ния читаемости. Синтаксис декоратора:

def decorator_function(func): def wrapper():

#Действия до вызова функции func()

#Действия после вызова функции return wrapper

@decorator_function def say_hello():

print("Hello!")

3.6.2. Создание собственных декораторов

Пример декоратора:

def greet_decorator(func):

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]