Основы Python. Часть 1#
Присвоение значений и динамическая типизация#
# Комментарий
a = 5
b = 5.5
c = "привет"
d = b"\x00\x7f\x2e"
e = True
f = None
При повторном присваивании типы не проверяются, а создается новая переменная с тем-же именем.
d = 42 # Успешно: d теперь имеет тип int и значение 42
При выполнении прочих операций типы проверяются
# d = a + c # Ошибка
Можно смешивать переменные разных числовых типов в одном выражении
q = a + b # Успешно: d теперь имеет тип float и значение 27.5
Строки#
Способы записи строк#
s = "строка"
s = "строка с одинарными 'ковычками'"
s = 'строка с двойными "ковычками"'
s = '''строка
из нескольких строк
с переносами'''
s = 'Строка с символами \tс экранирования\n'
s = r'Строка без \n экранирования'
s = b'Byte String - Only Ascii and \x24'
Распространенные непечатные символы#
Символ |
Значение |
---|---|
|
Новая строка |
|
Табуляция |
|
Возврат каретки |
|
Символ Unicode: |
|
Байт |
|
Символ |
Проблемы с экранированием возникают при работе с регулярными выражениями и именами папок в Windows:
# pth = 'C:\new_files\ret_id' # Ошибка \n и \r недопустимы в имени папки
pth = 'C:\\new_files\\ret_id' # Все хорошо
pth = r'C:\new_files\ret_id' # Все хорошо
# pth = 'C:\files\ ' # Ошибка экранированный символ \' в конце строки \'
pth = 'C:\files' # Все хорошо
Вызов функций и операторы#
Вызов функций#
Функции вызываются стандартно:
print("Привет!")
Привет!
и могут принимать:
# Аргументы по порядку
print(1, 2, "test")
# Аргументы по имени
print(sep = ";", end = "?")
1 2 test
?
Способы передачи аргументов можно смешивать, но аргументы по порядку должны идти в начале
print(1, 2, sep = "-") # Правильно
# print(sep = "-", 1, 2) # Ошибка
1-2
Возвращаемые значения#
Функция может возвращать одно или несколько значений. Если функция не вернула ни одного значения, то считается, что она вернула None. Если возвращаемое значение не было присвоено переменной, то оно теряется.
def foo(x):
return x*x
foo(24)
x = foo(24)
def bar(x):
return x*x, x+x, x**x
x,y,t = bar(42)
Некоторые встроенные функции#
Функция |
Назначение |
---|---|
|
Длина перечисляемого x, например строки или списка, возвращает int |
|
Тип данных x, возвращает специальный объект — тип |
|
Печать на экран x, возвращает None |
Операторы#
Об операторах надо думать, как об упрощенной форме записи вызовов функций:
y = 1+2*3 # тоже, что и y = __add__(1,__mult__(2,3))
Операторы и вызовы функций можно свободно смешивать:
y = 2*len("test")+1
y = len("test" + "code")
Многие операторы имеют сокращенную форму записи:
y = y + 1
y += 1
Некоторые операторы#
Оператор |
Тип данных |
Действие |
Пример |
---|---|---|---|
|
Числовые |
Сложение |
|
|
Перечислимые |
Конкатенация |
|
|
Числовые |
Вычитание |
|
|
Числовые |
Умножение |
|
|
Числовые |
Повторение |
|
|
Числовые |
Возведение в степень |
|
|
Числовые |
Деление тип результата всегда действительное число |
|
|
Числовые |
Деление нацело |
|
|
Числовые |
Остаток от деления |
|
|
Строки |
Подстановка |
|
Python позволяет смешивать переменные разных числовых типов в одном выражении, при этом тип результата определяется наиболее содержательным типом.
Операторы сравнения#
Применяются для определения условий. Результат имеет тип bool.
Оператор |
Действие |
Пример |
---|---|---|
|
Равно |
|
|
Не равно |
|
|
Больше |
|
|
Меньше |
|
|
Больше или равно |
|
|
Меньше или равно |
|
|
Тождество переменных |
|
Логические операторы#
Применяются для объединения логических выражений. Результат имеет тип bool.
Оператор |
Действие |
Пример |
---|---|---|
|
Логическое НЕ |
|
|
Логическое И |
|
|
Логическое ИЛИ |
|
Побитовые операторы#
Применяются для битовой арифметики над целыми числами или для операций над массивами numpy. a = 25 print(«тест:», a , «-», 3.158)
Оператор |
Действие |
Пример |
---|---|---|
|
Побитовое НЕ |
|
|
Побитовое И |
|
|
Побитовое ИЛИ |
`x |
|
Побитовое исключающее ИЛИ |
|
Загрузка модулей#
Почти все функции как стандартной библиотеки, так и и сторонних организованы в модули
Для подключения модулей используется ключевое слово import
Для доступа к методам используется оператор .
import numpy
numpy.cos(3) # Успешно
# cos(3) # Ошибка
np.float64(-0.9899924966004454)
from numpy import cos
cos(3) # Успешно
np.float64(-0.9899924966004454)
import numpy as np
np.cos(3) # Успешно
np.float64(-0.9899924966004454)
Важные модули стандартной библиотеки#
Модули |
Возможности |
---|---|
|
Служебные функции интерпретатора, аргументы командной строки, выход |
|
Операции с файлами и папками, переменные окружения, запуск сторонних программ |
|
Операции с путями к файлам |
|
Базовые математические функции. Мы их использовать не будем |
|
Генерация случайных чисел и последовательностей |
|
Работа с бинарными структурами |
|
Работа с датой и временем |
|
Копирование составных объектов |
|
Улучшенный |
|
Сохранение объектов Python в файлы |
Важные сторонние модули доступные в pip#
Модули |
Возможности |
---|---|
|
Эффективные методы для работы с числовыми данными |
|
Коллекция математических методов |
|
Рисование графиков |
|
Таблицы данных |
Приведение типов#
Типы данных в Python автоматически не приводятся. Но типы int
, float
и bool
можно смешивать в арифметических выражениях. Результат будет определяться наиболее ёмким типом (float > int > bool).
Исходный тип |
Целевой тип |
Способ приведения для переменной |
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Функция print#
Функция print
— печатает текст в консоли. Принимает произвольное число аргументов, производного типа, если аргумент не строка, то у него вызывается метод __str__()
, а при отсутствии потом __repr__()
(есть у всех переменных всех типов). Таким образом print
так или иначе выведет на печать переменную любого типа.
print("тест:", 24 , "-", 3.158, print)
тест: 24 - 3.158 <built-in function print>
Важнейшие дополнительные аргументы: sep
— разделитель между аргументами (по умолчанию — пробел) и end
— конец строки, по умолчанию \n
.
print('a', 1, 'b', '2', sep=';', end='<==\n')
a;1;b;2<==
Условия и циклы#
Одной из главных особенностей Python является использование пробелов для оформления блоков операторов:
if a > 0:
b = 2
Условный оператор if#
if 〖логическое выражение〗:
〖операторы〗
else:
〖операторы〗
Примеры:
a,b,c = 1,2,3
if a > 0:
b = 2
else:
b = 3
print(b)
if a > 0:
if c > 0:
print("a > 0 и c > 0")
if a > 0 and c > 0:
print("a > 0 и c > 0")
a > 0 и c > 0
a > 0 и c > 0
if a > 0:
print("a > 0")
elif a >= -2:
print("a >= -2")
else:
print("a < -2")
a > 0
Условный цикл while#
while 〖логическое выражение〗:
〖операторы〗
Примеры:
x = 5
while x > 0:
print(x)
x = x - 1
5
4
3
2
1
x = 5
while True:
print(x)
if x < 0:
break
x = x - 1
5
4
3
2
1
0
-1
x = 5
while x > -3:
x = x - 1
if x > 0:
continue
print(x)
0
-1
-2
-3