Similar presentations:
преза-лр2-тяп
1.
Типизация языкапрограммирования Python
Подготовил: ст.гр. ПИН-231, Акатова Е.Б.
2.
1Задание
Математическая структура:
1
3.
Анализ коллизий2
Формула:
Сводная таблица коллизий:
2
4.
Типизация Python3
Типизация — набор правил, определяющих, как типы данных
присваиваются переменным и как они взаимодействуют.
Основные характеристики 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.
Оценка типизации Python9
Критерий
Оценка
Причина
Статическая / Динамическая
Динамическая
Динамическая
Переменные меняют
тип без объявления
Сильная / Слабая
Сильная
"5" + 2 → TypeError
Явная / Неявная
Неявная
Тип определяется при присваивании
Безопасность памяти
Безопасная
Автоматическое управление
памятью, сборщик мусора
Язык
Статическая/Дин Сильная/Слабая Явная/Неявная
амическая
Python
Динамическая
Сильная
Неявная (с возможностью явного приведения)
C#
Статическая
Сильная
Явная (с ключевым
локальной типизации)
словом
var для неявной
9
11.
Вывод по типизации10
Типизация в Python является динамической, сильной и в основном неявной. Это придаёт
языку гибкость и упрощает написание кода (особенно для прототипирования и научных
вычислений), однако требует осторожности при обращении с типами данных и может
ухудшать
производительность
и
надежность
кода
по
сравнению
со
статически
типизированными языками, такими как C#.
В отличие от статического C#, ошибка типа в Python проявит себя только во время
выполнения программы, что требует более тщательного тестирования.
10
12.
Спасибо завнимание!
Остались вопросы?
akk-elisa@gmail.com
+89006738434