Share This
Связаться со мной
Крути в низ
Categories
//Основы Python — изучаем базовые концепции языка

Основы Python — изучаем базовые концепции языка

29.07.2021Category : Python

Перевод статьи «Python Basics: Understanding the core concepts». 

Эта статья рассчитана как на новичков в программировании, так и на программистов, которые уже владеют каким-либо языком, но хотят освоить еще и Python. Также она пригодится тем, кто хочет освежить свои знания.

Мы разберем самые основы Python. Начнем с типов данных, а ближе к концу статьи затронем приведение типов и срезы. Также мы познакомимся с некоторыми основными концепциями программирования. 

Итак, приступим!

Переменные

Переменные — это именованные участки памяти компьютера, в которых хранятся некоторые значения. Переменные могут хранить любой тип данных. Например, у нас есть пара значений — 10 и 20. Мы хотим их сложить и сохранить сумму для дальнейших операций. Давайте посмотрим, что нам нужно для этого сделать:

a = 10   # переменная a b = 20   # переменная  b c = a + b  # сумма а и b

Примечание редакции Pythonist: рекомендуем очень подробную статью об именах и присваивании значений — «Факты и мифы об именах и значениях в Python».

Типы данных

Тип данных — это атрибут, позволяющий компилятору понять, какие действия можно производить с переменной. В 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 — самый необходимый минимум. Обратите внимание, что все в статье — обязательно к изучению, если вы новичок.

osnovy python izuchaem bazovye koncepcii jazyka 9abdd49 - Основы Python — изучаем базовые концепции языка

Кодинг-марафон по Python

Реши 10 задач и выиграй 5500 рублей

Подписаться ×

  • 8 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close