Знакомство с Python Синтаксис и особенности. Интерпретаторы и IDE. Модули
Языки программирования и их виды
Что такое интерпретатор и компилятор?
Характеристики языков программирования
Области применения языка программирования Python
Где писать программу?
Интерпретаторы и их базовая схема выполнения программы
Интегрированная среда разработки (IDE)
Интерпретаторы и IDE Python для работы с большими данными
Anaconda
Иcтория создания Python
Гибкая модель расширяемости
Официальная спецификация языка Python и основные правила синтаксиса
Основные правила синтаксиса
Основные правила синтаксиса
Основные правила синтаксиса
Основные правила синтаксиса
Основные библиотеки Python для анализа больших данных
Переменные в Python
Типы данных Python
Проверка типа переменной и его изменение
Тип int в Python
Методы и функции для работы с int
Особенности работы с большими числами
Тип float в Python
Тип float в Python
Список list
Основные действия со списками
Кортеж tuple()
Тип str в Python
Множества set
Основные действия с множествами
Тип dict в Python
Тип dict в Python
СПАСИБО ЗА ВНИМАНИЕ!
1.26M
Category: programmingprogramming

Лекция 1

1. Знакомство с Python Синтаксис и особенности. Интерпретаторы и IDE. Модули

Паршинцева Л.С.,
к.э.н., доцент,
доцент кафедры «Статистика»
Контакты:
Адрес электронной почты – ls_parshintseva@guu.ru

2. Языки программирования и их виды

Разработка программ
Выполнение команд
программы
Компьютер делает то,
что требуется
Низкоуровневы
е
C, Assembly и
другие
Среднеуровневые
C++, Rust и
другие
Высокоуровневые
Python, Java,
JavaScript и
другие
Языки
программирования
Языки
программирования
Программа – набор команд для
компьютера
Компилируемые
C, C++, Swift, Go,
Pascal и другие
Интерпретируемые
Python, PHP,
JavaScript, Lava,
MATLAB и другие
Гибридные (JITкомпилируемые)
Java, C#, Julia
2

3. Что такое интерпретатор и компилятор?

Способы
преобразования и
выполнения исходного
кода
Компилятор
Интерпретатор
Переводит весь исходный
модуль на машинный язык
Последовательно переводит
на машинный язык каждый
оператор исходного модуля и
сразу же выполняет его
Python-интерпретатор
переводит код программы в
байт-код, который
запускается на виртуальной
машине Python (PVM).
Интерпретатор — это программный
слой между исходным кодом и
компьютером.

4. Характеристики языков программирования

Тип языка
Преимущества
Недостатки
Компилируемый
Высокая скорость выполнения
Оптимизация кода до запуска
Выявление ошибок на этапе
компиляции
Длительный процесс компиляции
Меньшая гибкость при отладке и
изменениях
Платформенная зависимость
скомпилированного кода
Интерпретируемый
Быстрая разработка и отладка
Портативность кода (выполняется
там, где есть интерпретатор)
Гибкость и возможность
динамического исполнения
Ниже скорость выполнения
Возможны ошибки во время
выполнения
JIT-компилируемые
Баланс между скоростью и
гибкостью
Оптимизация часто используемых
участков кода
Более высокая
производительность, чем у
интерпретируемых
Дополнительная нагрузка во время
исполнения
Сложность реализации JITкомпилятора
4

5. Области применения языка программирования Python

Web-разработка
Анализ данных и машинное обучение
Игровая индустрия
Системное программирование
Игровая индустрия
Автоматизация процессов
Базы данных
5

6. Где писать программу?

Где угодно, даже в «Блокноте». Главное, чтобы файл с
программой сохранялся как текст с расширением .py
Скачать интерпретатор:
https://www.python.org/
Интерпретатор лучше
установить в папку, в пути
к которой будут только
символы английского
алфавита
Написанную программу можно
запустить из командной строки
командой:
python program.py
6

7. Интерпретаторы и их базовая схема выполнения программы

Программа, которая выполняет код, написанный на языке программирования, преобразуя его в
машинный код или команду, которую может понять операционная система.
Чтение исходного кода
Вывод результатов
CPython
PyPy
Лексический анализ
(токенизация)
Интерпретация/выполн
ение программы
Jython
IronPython
Синтаксический анализ
(создание AST)
Семантический анализ
(проверка на ошибки)
Другие
7

8. Интегрированная среда разработки (IDE)

Программное приложение, которое помогает программистам эффективно разрабатывать
программный код.
Компоненты
IDE
Текстовый редактор
Отладчик
Транслятор (компилятор и/или
интерпретатор)
Средства управления версиями
Расширения для решения
дополнительных задач разработки
Графический интерфейс
PyCharm
Spyder
Thonny
VSCode
Jupyter
Notebook
Другие
Тестирование
8

9. Интерпретаторы и IDE Python для работы с большими данными

Возможности
использования для работы
с большими данными
Интерпретаторы / IDE online
Интерпретаторы / IDE offline
Используется для работы с
большими данными
Google Colab
(https://colab.research.google.com/)
Jupyter Notebook (JupyterHub)
(jupyter.org)
СPython (python.org)
PyCharm Community Edition
(jetbrains.com/pycharm)
Visual Studio Code (VSCode)
(code.visualstudio.com)
Anaconda (anaconda.com)
PyPy (https://www.pypy.org)
Spyder (https://www.spyderide.org)
Ограниченные ресурсы для
работы с большими данными
Replit (replit.com)
PythonAnywhere
(pythonanywhere.com)
Jython (https://www.jython.org)
IronPython (https://ironpython.net)
Не подходит для работы с
большими данными
Trinket (trinket.io)
Thonny (thonny.org)
MicroPython
(https://micropython.org)
9

10. Anaconda

Anaconda — это готовый дистрибутив Python и R, созданный для удобной работы с анализом
данных, научными вычислениями и машинным обучением.
1500 заранее
установленных
библиотек
Собственный
менеджер пакетов и
виртуальных сред —
Conda
Графический
интерфейс Anaconda
Navigator
Работает на основных
операционных системах
и распространяется как
свободное программное
обеспечение с открытым
исходным кодом
10

11. Иcтория создания Python

Назван
в честь
комедии
«Летающий
цирк Монти
Пайтона»
Основная идея: язык
программирования должен быть
простым, кратким, достаточно
хорошим для того, чтобы
справляться с нужными задачами и
иметь гибкую модель
расширяемости.
1982-1987 гг:
Прототип
Python – ABC
(1982-1987)
1989 г: Гвидо
ван Россум
разработал
проект
будущего
Python
1991 г: создан
дистрибутив
и опубликован
код языка
Python через
сеть Usenet.
ЛОГОТИПЫ

12. Гибкая модель расширяемости

PEP-индекс — задокументированный регламент
по внесению изменений в структуру и синтаксис языка.
Любой разработчик
Если
большинство
«за» –
предложение
вступает в силу
аргументированные предложения по
улучшению в письменной форме
голосование и
обсуждение
участниками
Официальный
сайт сообщества
python.org
Редакторы Pythonсообщества
предварительная
проверка

13. Официальная спецификация языка Python и основные правила синтаксиса

PEP 8 (Python Enhancement Proposal 8): https://peps.python.org/pep-0008/
Официальная документация Python: https://docs.python.org/3/
Отступы и
пробелы
Импорт
Использование
двоеточий
Кавычки
Объявление
переменных
Сравнение
значений
Другие правила
синтаксиса
Комментарии
Проверка кода в документе с именем
my_document.py на соответствие PEP 8.
flake8 my_document.py
Автоматически форматирует код в
документе с именем my_document.py в
соответствии с PEP 8.
black my_document.py
Анализирует код в документе с именем
my_document.py на ошибки и стиль
pylint my_document.py
13

14. Основные правила синтаксиса

Отступы:
if x > 10:
print("x is greater than 10") # 4 пробела
X
if x > 10:
print("x is greater than 10") # Неправильный синтаксис
Пробелы:
X
spam(ham[1], {eggs: 2}) # Лишние отступы отсутствуют
foo = (0,) # Лишние отступы отсутствуют
i= +- 1
spam( ham[ 1 ], { eggs: 2 } ) # Лишние отступы
foo = (0, ) # Лишние отступы
14

15. Основные правила синтаксиса

Объявление переменных:
user_name = "Alice" # правильное имя переменной
UserName = "Bob" # другое имя переменной, с другой капитализацией
X
user name = "Alice" # в имени пропущен знак (_)
1name = "Bob"
# имена не могут начинаться с цифры
Комментарии:
# Однострочный комментарий. Всё после символа # игнорируется
интерпретатором.
""" Многострочный комментарий (строка документации) оформляется с
помощью символов """. Используется для описания больших блоков
кода, функций или классов. Символы """ , которые завершают
комментарий, должны быть на отдельной строке.
15

16. Основные правила синтаксиса

Кавычки:
correct1 = "Внутри 'одинарные' кавычки" # Парность кавычек
correct2 = "Он сказал: \"Привет!\"" # Экранированные двойные кавычки
X
error1 = "Внутри 'одинарные' кавычки # Непарные кавычки
error2 = "Он сказал: "Привет!"" # Двойные внутри двойных без экранирования
Использование двоеточий для обозначения начала блока
кода после ключевых слов if, for, while, def, class:
def greet():
print("Hello!") # Отступ в следующей строке
X
def greet()
print("Hello!") # Неправильный синтаксис
16

17. Основные правила синтаксиса

Сравнение значений:
if age == 18:
print("Совершеннолетний")
X
if age = 18: # = вместо ==
print(«Ошибка")
Импорт:
import os
import sys # импорт в отдельных строках
X
import sys, os # импорт в одной строке
17

18.

Библиотека (модуль) в Python
Набор методов (функций) в рамках определенной темы.
Команда для установки пакетов и
библиотек из Python Package Index
(PyPI) или других репозиториев
Для Jupyter Notebook и Google
Команда импорта библиотеки в
код
Ключевое слово (команда) import
(в сочетании с ключевыми
словами as и from)
18

19. Основные библиотеки Python для анализа больших данных

Библиотека (полное Устоявшееся
наименование)
сокращение
Назначение в контексте больших
данных
Ссылка на
документацию
Pandas
pd
работа с табличными данными,
подготовка и очистка данных
https://pandas.pydata.org
/pandas-docs/stable/
NumPy
np
работа с многомерными массивами,
линейная алгебра
https://numpy.org/doc/st
able/
Dask
dd
параллельная обработка больших
данных, работа с данными, не
помещающимися в память
https://docs.dask.org/en/
stable/
PySpark
spark
распределенная обработка данных с
использованием Spark
https://spark.apache.org/
docs/latest/api/python/
Vaex
vaex
оптимизированная работа с большими
датасетами
https://vaex.io/docs/
h5py
h5py
предоставляет интерфейс для работы с
файлами HDF5.
http://www.h5py.org/
Пример кода для импорта пакета
Pandas
19

20. Переменные в Python

Переменная в Python – именованные контейнеры для хранения данных.
Должны начинаться с буквы или знака
подчеркивания
В именах могут использоваться буквы,
цифры и знаки подчеркивания
Для создания переменной используется
оператор присваивания (=)
Нельзя использовать знаки препинания
и специальные символы
ПРИМЕР
Python чувствителен к регистру
Имя должно быть задано только с
использованием букв английского алфавита
message = "Добрый день" # Создание переменной
del message # Удаление переменной
20

21. Типы данных Python

None
неопределенное значение переменной
Логические переменные
int –целое число
Числа
float – число с плавающей точкой
Типы данных Python
complex – комплексное число
Списки и кортежи
Встроенные
типы данных
Невстроенные
типы данных
Строки
list – список
tuple - кортеж
str
bytes – байты
Бинарные списки
bytearray – массивы байт
memoryview – для доступа к внутренним данным
Множества
Словари
set – множество
frozenset – неизменяемое множество
dict – словарь
21

22. Проверка типа переменной и его изменение

Проверка типа:
Функция type(object) возвращает текущий тип переменной.
Функция isinstance(object,classinfo) позволяет проверить принадлежность объекта к классу.
ПРИМЕРЫ
var = 5 # Создание переменной
print("Исходный тип:", type(var)) # Определение типа переменной
isinstance(var, int) # Проверка на принадлежность переменной к целым
числам
var = str(var) # Изменение типа переменной на строку
print("Новый тип:", type(var))
# Попытка преобразования строковой переменной в целочисленную переменную
try:
var = int(var)
print("Успешное преобразование:", var, type(var))
except ValueError:
print("Ошибка: строка не может быть преобразована в число")
22

23. Тип int в Python

int (целое число) — неизменяемый тип данных для представления целых чисел (положительных,
отрицательных и нуля).
Создание целых чисел
Арифметические операции
# Десятичные числа
a = 42
b = -100
c = 0
# Двоичные (префикс 0b)
binary = 0b1010 # 10 в десятичной
# Восьмеричные (префикс 0o)
octal = 0o52 # 42 в десятичной
# Шестнадцатеричные (префикс 0x)
hexadecimal = 0x2A # 42 в десятичной
print(a, binary, octal, hexadecimal) #
Вывод: 42 1 0 42 42
x = 10
y = 3
p rin t(x + y ) # Сложение: 1 3
p rin t(x - y ) # Вычитание: 7
p rin t(x * y ) # Умножение: 30
p rin t(x ** y ) # Возведение в степень: 1 000
p rin t(x / y ) # Деление (возвращает flo a t): 3. 333. . .
23

24. Методы и функции для работы с int

Преобразование типов
# Из строки
num_str = "123"
num_int = int(num_str) # 123
# Из float
pi_int = int(3.1415) # 3 (отбрасывает дробную часть)
# С указанием системы счисления
binary_str = "1010"
dec_num = int(binary_str, 2) # 10
hex_str = "FF"
dec_num = int(hex_str, 16) # 255
Полезные функции
n = -42
abs_n = abs(n) # Модуль: 42
pow_n = pow(2, 8) # 2^8 = 256
rounded = round(3.7) # Округление: 4
# Минимум/максимум
print(min(5, 2, 8)) # 2
print(max(5, 2, 8)) # 8
24

25. Особенности работы с большими числами

Python автоматически обрабатывает большие числа
# Факториал 1 00 (1 5 8 -значное число)
import math
big_num = math.factorial(100)
print(big_num) # 933262154439...000000
# Проверка типа
print(type(big_num)) # <class 'int'>
# Операции с гигантскими числами
huge = 10**1000 # Число с 1 001 цифрой
print(huge // 2) # 500...0
Некоторые особенности и нюансы
Деление: / всегда возвращает float : 10 / 2 → 5.0 //
возвращает int при целочисленном результате: 10 // 2 → 5
Разделители для удобства чтения
million = 1_000_000
print(million) # 1000000
Важные функции модуля math для int
import math
print(math.gcd(48, 18)) # Наибольший общий делитель: 6
print(math.ceil(4.2)) # Округление вверх: 5
print(math.floor(4.9)) # Округление вниз: 4
print(math.factorial(5)) # 120
print(math.isfinite(10**1000)) # Проверяет, является ли число конечным
25

26. Тип float в Python

float (число с плавающей точкой) — тип данных для представления вещественных чисел (дробных,
экспоненциальных).
Создание float чисел
# Явное указание
a = 3.14
b = -0.001
c = 2.0
# Научная нотация
d = 1.23e-4 # 0.000123
e = 5.67e8 # 567000000.0
# Преобразование
f = float("3.14") # Из строки
g = float(42) # Из int: 42.0
print(a, b, d, f) # Вывод: 3. 1 4 -0. 001 0. 0001 2 3 3. 1 4
Арифметические операции
x = 10.5
y = 3.2
print(x + y) # Сложение: 1 3. 7
print(x - y) # Вычитание: 7. 3
print(x * y) # Умножение: 33. 6
print(x ** 2) # Возведение в степень: 1 1 0. 2 5
print(x / y) # Деление: ≈3. 2 8 1 2 5
print(x // y) # Целочисленное деление: 3. 0
print(x % y) # Остаток: 1 0. 5 % 3. 2
Операции сравнения
a = 0.3
b = 0.3
print(a == b) # True
26

27. Тип float в Python

Проблемы точности (машинная эпсилон)
Полезные константы и функции
# Классический пример
p rin t(0. 1 + 0. 2 ) # 0. 30000000000000004
# Причина: 0. 1 в двоичной системе - бесконечная дробь
# 0. 1 ₁₀ = 0. 0001 1 001 1 001 1 001 1 001 1 . . .
Решение: Использовать округление или модуль decimal
для точных вычислений
import math
print(math.pi) # ≈3.141592653589793
print(math.e) # ≈2.718281828459045
print(math.tau) # 2*pi ≈6.283185307179586
print(math.sqrt(25)) # 5.0
print(math.log(100, 10)) # 2.0 (логарифм)
print(math.fabs(-7.5)) # 7.5 (модуль)
Округление
Для финансовых расчетов используйте decimal
num = 3.14159265
print(round(num, 2)) # 3.14
from decimal import Decimal
a = Decimal('0.1')
b = Decimal('0.2')
print(a + b == Decimal('0.3')) # True
Преобразования
# float → int (отбрасывает дробную часть)
print(int(3.9)) # 3
# float → str
print(str(3.14)) # "3.14"
27

28. Список list

Списки – это упорядоченные изменяемые коллекции объектов произвольных типов.
ПРИМЕРЫ
# Создание пустого списка
e m p ty _ lis t = []
# Создание списка с элементами
n u m b e rs = [1 , 2 , 3, 4, 5 ] # Элементы числа
fru its = ["яблоко", "банан", "апельсин"] # Элементы строковые данные
rn d _ lis t = [1 0, "текст", 3. 1 4, T ru e ] # Элементы разных типов
# Создание списка на основе строки
lis t('a b c ')
28

29. Основные действия со списками

Функция
Характеристика
list.append(x)
Добавляет элемент в конец списка
list.extend(L)
Расширяет список list, добавляя в конец все элементы списка L
list.insert(i, x)
Вставляет на i-тый элемент значение x
list.remove(x)
Удаляет первый элемент в списке, имеющий значение х.
list.count(x)
Возвращает количество элементов со значением х
list.reverse()
Разворачивает список
list.clear()
Очищает список
ПРИМЕРЫ
n u m b e rs = [1 , 2 , 3, 4, 5 ]
p rin t(n u m b e rs [0]) # Так как индексация начинается с 0, на экран будет выведена цифра 1
p rin t(n u m b e rs [-1 ]) # При использовании отрицательных индексов отсчет начинается с конца
n u m b e rs . a p p e n d (6) # Добавить цифру 6 в конец списка
n u m b e rs . in s e rt(3, 0) # Вставить на позицию 3 цифру 0
d e l n u m b e rs [3] # Удалить значение с индексом 3
29

30. Кортеж tuple()

Кортеж – это неизменяемая структура данных.
Для чего используются?
Защита от изменений
Возможность использовать
в качестве словаря
Занимает меньше памяти
ПРИМЕРЫ
# Явное создание
tp l1 = (1 , 2 , 3)
tp l2 = tu p le ((1 , 2 , 3)) # Создание кортежа из цифр
tp l3 = tu p le ('Строка') # Создание кортежа из строки
# Без скобок (кортеж определяется запятыми)
tp l3 = 4, 5 , 6
# Кортеж с одним элементом (обязательна запятая)
tp l4 = (7, )
30

31. Тип str в Python

Строка (str) — неизменяемая последовательность символов Unicode. Это один из самых часто
используемых типов данных в Python.
Создание строк
Индексация и срезы
text = "Python"
# С одинарными кавычками
s1 = 'Привет'
print(text[0]) # 'P' (первый символ)
= "Анна"
print(text[-1])
# 'n' (последний символ)
# С двойными кавычками name
greeting = "Привет, " + name
+ "!" #
s2 = "Python"
Конкатенация
print(text[2:5]) # 'tho' (срез с 2 до 4
# Многострочные строки (тройные кавычки)
индекса)
s3 = '''Первая строка
print(text[::2]) # 'Pto' (каждый второй
Вторая строка'''
символ)
# Специальные символы
Конкатенация и повторение
s4 = "Текст с \nпереводом строки и \tтабуляцией"
name = "Анна"
# Сырые строки (raw)
greeting = "Привет, " + name + "!" #
s5 = r"C:\new_folder\text.txt" #
Конкатенация
Экранирование игнорируется
stars = "*" * 30 # Повторение
print(s1, s2, s4, s5, sep="\n---\n")
print(greeting)
31
print(stars)

32. Множества set

Множество – это контейнер, содержащий не повторяющиеся элементы в случайном порядке.
Основные свойства
Уникальность
Неупорядоченность
ПРИМЕРЫ
m y _ s e t = {1 , 2 , 3} # Создание множества через {}
m y _ s e t2 = s e t([3, 4, 5 ]) # Создание множества из списка
m y _ s e t3 = s e t('Строка') # Создание множества из строки
e m p ty _ s e t = s e t() # Пустое множество
Изменяемость
32

33. Основные действия с множествами

Функция
set.add(elem)
Характеристика
Добавляет элемент в множество
set.remove(elem)
Удаляет элемент из множества. Ke y E rro r, если такого элемента не существует.
set.discard(elem)
Удаляет элемент, если он находится в множестве.
set.pop()
len(s)
Удаляет первый элемент из множества. Так как множества не упорядочены,
нельзя точно сказать, какой элемент будет первым.
Подсчитывает число элементов в множестве.
x in s
Проверяет, принадлежит ли x множеству s
set1 == set2
Все элементы s e t1 принадлежат s e t2 , все элементы s e t2 принадлежат s e t1
ПРИМЕРЫ
m y _ s e t. a d d (4) # добавит в конец множества значение 4
m y _ s e t. re m o v e (2 ) # удалит значение 2 из множества
m y _ s e t. d is c a rd (5 ) # Ничего не произойдет, так как в множестве нет такого элемента
33

34. Тип dict в Python

Словарь (dict) — изменяемая коллекция пар "ключ-значение".
Создание словарей
# Пустой словарь
empty_dict = {}
empty_dict_v2 = dict()
# С элементами
person = {"name": "Alice", "age": 30, "city": "London"}
grades = dict(Alice=95, Bob=87, Carol=92)
# Из последовательностей
keys = ['a', 'b', 'c']
values = [1, 2, 3]
mapped = dict(zip(keys, values)) # {'a': 1, 'b': 2, 'c': 3}
Доступ к элементам
person = {"name": "Alice", "age": 30}
print(person["name"]) # "Alice"
# print(person["job"]) # KeyError (ключ не существует)
print(person.get("age")) # 30
34

35. Тип dict в Python

Изменение элементов
person["age"] = 31 # Изменение существующего
person["job"] = "Engineer" # Добавление нового элемента
# Обновление нескольких значений
person.update({"age": 32, "email": "alice@mail.com"})
Основные действия с множествами
Функция
Что делает?
set.add(elem)
Добавляет элемент в множество
set.remove(elem)
Удаляет элемент из множества. KeyError, если такого элемента не существует.
set.discard(elem)
Удаляет элемент, если он находится в множестве.
set.pop()
Удаляет первый элемент из множества. Так как множества не упорядочены,
нельзя точно сказать, какой элемент будет первым.
len(s)
Число элементов в множестве.
x in s
Принадлежит ли x множеству s
set1 == set2
Все элементы set1 принадлежат set2, все элементы set2 принадлежат set1
35

36. СПАСИБО ЗА ВНИМАНИЕ!

Паршинцева Лидия
Сергеевна
ls _ p a rs h in ts e v a @g u u . ru
English     Русский Rules