Перевод статьи «Python Basics: Understanding the core concepts». Перевод был взят с сайта - https://pythonist.ru/osnovy-python-izuchaem-bazovye-konczepczii-yazyka/
Эта статья рассчитана как на новичков в программировании, так и на программистов, которые уже владеют каким-либо языком, но хотят освоить еще и Python. Также она пригодится тем, кто хочет освежить свои знания.
Мы разберем самые основы Python. Начнем с типов данных, а ближе к концу статьи затронем приведение типов и срезы. Также мы познакомимся с некоторыми основными концепциями программирования.
Итак, приступим!
Переменные
Переменные — это именованные участки памяти компьютера, в которых хранятся некоторые значения. Переменные могут хранить любой тип данных. Например, у нас есть пара значений — 10 и 20. Мы хотим их сложить и сохранить сумму для дальнейших операций. Давайте посмотрим, что нам нужно для этого сделать:
a = 10 # переменная a
b = 20 # переменная b
c = a + b # сумма а и b
Типы данных
Тип данных — это атрибут, позволяющий компилятору понять, какие действия можно производить с переменной. В Python есть шесть основных типов данных — числа, строки, списки, кортежи, множества и словари.
Числа
В эту категорию попадают любые числа: целые, с плавающей точкой и комплексные. Чтобы узнать, к какому типу принадлежит число, мы можем воспользоваться функцией type()
.
a = 5
print(type(a)) # <class 'int'>
b = 1+4j
print(type(b)) # <class 'complex'>
c = 4.5
print(type(c)) # <class 'float'>
Посмотрите на вывод внимательно: класс int
переменной a = 5
— предопределенный. Это значит, что его не нужно определять вручную, это уже сделано за нас. Целые числа (int) могут быть любой длины, но есть ограничение — объем вашей памяти. Числа с плавающей точкой (float) имеют ограничение точности — 15 знаков после точки. Если попытаетесь ввести больше — лишние будут отброшены.
a = 1.12345678912345678912
print(a) # 1.1234567891234568
Строки
Строка (str) — это набор символов Юникод. Для определения строки мы используем одинарные или двойные кавычки.
Пример:
a = 'c'
print(type(a)) # <class 'str'>
b = "hello"
print(type(b)) # <class 'str'>
c = 'hello python'
print(type(c)) # <class 'str'>
Списки
Списки (list) — упорядоченная последовательность элементов. Это один из самых часто используемых типов данных в Python. Списки очень похожи на массивы, но в списках мы можем хранить элементы разного типа.
Списки изменяемы. Это означает, что мы можем изменить любое их значение при помощи индексов.
lst = [1,2,3,4,5.3]
print(type(lst)) # <class 'list'>
lst = [1,'hello',3,4,5.3,'pythonist']
print(type(lst)) # <class 'list'>
lst = ['hello','pythonist']
print(type(lst)) # <class 'list'>
lst = [1,'hello',3,4,5.3,'pythonist']
print(lst[0]) # 1
lst = [1,'hello',3,4,5.3,'pythonist']
lst[0]=10
print(lst) # [10, 'hello', 3, 4, 5.3, 'pythonist']
Кортежи
Кортежи (tuple) — это также упорядоченные наборы элементов. От списков их отличает одно: кортежи неизменяемы. То есть, после объявления кортежа изменить его элементы мы не сможем.
Кортежи намного быстрее списков. Для получения доступа к элементам кортежа мы можем использовать индексы и срезы.
t = (1,2,3)
print(type(t)) # <class 'tuple'>
t = (1,'hello',3.2)
print(type(t)) # <class 'tuple'>
t = (1,'hello',3.2)
print(t[0]) # 1
Множества
Множество (set) — неупорядоченный набор элементов. Определяется множество с помощью фигурных скобок — {}
. Все элементы разделяются запятыми.
В множестве не может быть дубликатов. Это значит, что порой их можно использовать для того, чтобы избавиться от повторяющихся элементов списке. С множествами мы можем производить самые разные операции, например, объединение (union), пересечение (intersection).
Обратите внимание: получить доступ к элементу множества по индексу невозможно — они не упорядочены!
a = {1, 2, 3, 4, 5}
print(type(a)) # <class 'set'>
a = {1, 2, 3, 4, 5}
print(a[0]) # TypeError: 'set' object is not subscriptable
a = {1, 2, 3, 4, 5}
b = {6,5,3,4}
print(a.union(b)) # {1, 2, 3, 4, 5, 6}
a = {1, 2, 3, 4, 5}
b = {6,5,3,4}
print(a.intersection(b)) # {3, 4, 5}
Словари
Словарь (dict) — набор элементов, в котором элементы хранятся в виде пар ключ-значение. Такая система оптимизирована под поиск значений, из-за чего словари часто используют для хранения огромных массивов данных. Определяются словари с помощью фигурных скобок в следующем виде — {ключ: значение}
. Пары элементов отделяются запятыми.
dict = {'name':'ivan', 'number':'99029922', 'address':'Moskva'}
print(dict) # {'name': 'ivan', 'number': '99029922', 'address': 'Moskva'}
print(dict.keys()) # dict_keys(['name', 'number', 'address'])
print(dict.values()) # dict_values(['ivan', '99029922', 'Moskva'])
Операторы
Операторы нужны для проведения операций между двумя элементами. Например, в a + b
оператором является +
. Он указывает компилятору на то, что нужно сложить две переменные.
В Python есть 7 типов операторов:
- Арифметические операторы: *, +, /, **, %, —
- Операторы присваивания: =, +=, =+, -=, -=, !=
- Операторы сравнения: <, >, !<, !>, =<, >=, ==
- Логические операторы: and, or, not
- Операторы идентичности: is, is not
- Операторы членства: in, not in
- Битовые операторы: &, ^, ~, <<, >>
Индексы
Индексы используются для получения доступа к элементам коллекций (например, строк или списков). В Python есть два типа индексов — положительные и отрицательные. Положительные начинаются с 0, а отрицательные — с последнего элемента коллекции.
Пример:
# Положительные индексы
a = 56
print(a[0]) # TypeError: 'int' object is not subscriptable
b = 'python'
print(b[0]) # 'p'
c = 3.14
print(c[0]) # TypeError: 'float' object is not subscriptable
d = [1,2,'hello',4]
print(d[2]) # hello
print(d[2][1]) # e
print(d[2][4]) # o
d = [1,2,'hello',4]
print(d[-1]) # 4
print(d[2][-4]) # e
print(d[2][-1]) # o
str = "hello python"
print(str[-3]) # h
Срезы
Срезы используются для получения доступа к последовательности элементов коллекции. Внимание: верхняя граница всегда отбрасывается. То есть, a[0:3] — это элементы с индексами 0, 1 и 2, а вот элемент с индексом 3 в срез уже не войдет.
b = 'python'
print(b[0:2]) # py
d = [1,2,'hello',4]
print(d[0:2]) # [1,2]
print(d[2][1:4]) # 'ell'
print(d[2][1:-1]) # 'ell'
Функционал среза можно расширить, добавив третий параметр — шаг.
lst = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
print(lst[0:20:2]) # выводим все нечетные числа в промежутке от 0 до 20
print(lst[1:20:2]) # выводим все четные числа в промежутке от 0 до 20
strr = "hello python"
print(strr[0:8:4]) # ho
Приведение типов
Приведение типов позволяет сконвертировать один тип данных в другой. Это может оказаться полезным во многих ситуациях.
Пример:
a = 10
print(type(a)) # <class 'int'>
a = str(a)
print(type(a)) # <class 'str'>
a = float(a)
print(type(a)) # <class 'float'>
a = list(str(a))
print(type(a)) # <class 'list'>
print(a) # ['1', '0', '.', '0']
lst = [1, 2, 3, 4, 5, 1, 2]
lst = set(lst)
print(type(lst)) # <class 'set'>
print(lst) # {1, 2, 3, 4, 5}
lst = tuple(lst)
print(type(lst)) # <class 'tuple'>
print(lst) # (1, 2, 3, 4, 5)
Выводы
В этой статье мы разобрали основы Python — самый необходимый минимум. Обратите внимание, что все в статье — обязательно к изучению, если вы новичок.
Если данный язык программирования Вам нравится, то продолжить его изучать рекомендуется по книге Марк Лутц «Изучаем Python», а затем, если Вам интересна web-разработка, перейти к курсу.
Дата публикации: 6 апреля 2022 г. 12:00
Категория: Мини-уроки