1.13M

преза-лр2-тяп

1.

Типизация языка
программирования Python
Подготовил: ст.гр. ПИН-231, Акатова Е.Б.

2.

1
Задание
Математическая структура:
1

3.

Анализ коллизий
2
Формула:
Сводная таблица коллизий:
2

4.

Типизация Python
3
Типизация — набор правил, определяющих, как типы данных
присваиваются переменным и как они взаимодействуют.
Основные характеристики Python:
1) Динамическая — тип определяется во время выполнения;
2) Сильная — нет неявного приведения типов;
3) Неявная — тип переменной не нужно объявлять явно.
4) Пример неявной типизации:
3

5.

Динамическая типизация
4
Переменная может менять тип в процессе выполнения программы.
Вывод: Одна программа работает с числами с плавающей точкой, комплексными числами,
строками, списками — типы определяются автоматически в момент присваивания.
4

6.

Сильная типизация
5
Язык не выполняет неявные преобразования типов, которые могут привести к потере
данных.
Вывод: Python не позволяет смешивать несовместимые типы без явного преобразования.
5

7.

Структура программы
6
Основные функции:
1. show_menu() Выводит меню с пунктами 1-4 и 0, запрашивает у пользователя выбор и
возвращает целое число от 0 до 4.
2. explore_typing_system() Демонстрация особенностей типизации Python:
неизменяемые/изменяемые типы, проверка isinstance(), сильная типизация (ошибка "5" + 2).
3. compute_formula() Вычисляет значение по формуле (РВС) с использованием
комплексной арифметики (cmath.log, cmath.sqrt), возвращает комплексное число.
4. compute_reference_value() Образцовое вычисление (ОВС) с высокой точностью через
Decimal (50 знаков), используется для расчёта погрешности.
5. check_collisions() Проверяет входные значения на коллизии (особые точки): логарифм от
нуля, отрицательные подкоренные выражения, деление на ноль.
6

8.

Блок-схема и вид программы
7
7

9.

Работа программы
8
8

10.

Оценка типизации Python
9
Критерий
Оценка
Причина
Статическая / Динамическая
Динамическая
Динамическая
Переменные меняют
тип без объявления
Сильная / Слабая
Сильная
"5" + 2 → TypeError
Явная / Неявная
Неявная
Тип определяется при присваивании
Безопасность памяти
Безопасная
Автоматическое управление
памятью, сборщик мусора
Язык
Статическая/Дин Сильная/Слабая Явная/Неявная
амическая
Python
Динамическая
Сильная
Неявная (с возможностью явного приведения)
C#
Статическая
Сильная
Явная (с ключевым
локальной типизации)
словом
var для неявной
9

11.

Вывод по типизации
10
Типизация в Python является динамической, сильной и в основном неявной. Это придаёт
языку гибкость и упрощает написание кода (особенно для прототипирования и научных
вычислений), однако требует осторожности при обращении с типами данных и может
ухудшать
производительность
и
надежность
кода
по
сравнению
со
статически
типизированными языками, такими как C#.
В отличие от статического C#, ошибка типа в Python проявит себя только во время
выполнения программы, что требует более тщательного тестирования.
10

12.

Спасибо за
внимание!
Остались вопросы?
akk-elisa@gmail.com
+89006738434
English     Русский Rules