Это руководство познакомит вас с основами программирования на языке Python. Вы узнаете о переменных, типах данных, форматировании строк, структурах данных, функциях, условиях, циклах, модулях и классах Python и откроете для себя возможности этого универсального и мощного языка. Независимо от того, являетесь ли вы новичком или хотите подтянуть свои навыки, эта статья обеспечит вам прочную основу для разработки на Python.
Скачивайте книги ТОЛЬКО на русском языке у нас в телеграм канале: PythonBooksRU
Содержание
- Переменные в Python
- Работа со строками
- Структуры данных в Python
- Функции в Python
- Условия в Python
- Циклы в Python
- Модули в Python
- Классы и объекты
Переменные в Python
В Python переменная – это именованная область, в которой может храниться значение. Чтобы создать переменную, используйте имя переменной, затем символ =
и значение. Например: имя_переменной = значение
.
cats_count = 10
Здесь cats_count
– это переменная, которая хранит значение 10.
В Python переменным могут быть присвоены значения разных типов данных. К распространенным типам данных в Python относятся следующие:
- Числовые типы данных:
- Integer (int) – представляет целые числа, такие как 42 или -7.
- Float (float) – представляет десятичные числа, такие как 3,14 или -0,5.
- Complex (complex) – представляет числа с вещественной и мнимой составляющей, например
1 + 2j
.
- Булев тип данных (bool) – представляет значение
True
илиFalse
. - Последовательные типы данных:
- String (str) – представляет собой последовательность символов, например
"Hello, World!"
. - Список (list) – представляет собой упорядоченную коллекцию элементов, например
[1, 2, 3]
. - Кортеж (tuple) – аналогичен списку, но является неизменяемым, например
(1, 2, 3)
.
- String (str) – представляет собой последовательность символов, например
- Тип данных отображения:
- Словарь (dict) – представляет собой набор пар ключ-значение, например
{"name": "John", "age": 30}
.
- Словарь (dict) – представляет собой набор пар ключ-значение, например
- Множество (set) представляет собой неупорядоченную коллекцию уникальных элементов, например
{1, 2, 3}
.
Python является динамически типизированным языком, что означает, что тип данных переменной определяется во время выполнения программы на основе значения, которое она содержит. Например, если переменной присвоить целочисленное значение, то она будет иметь тип данных int
. Если впоследствии этой же переменной присвоить строковое значение, то переменная будет иметь тип данных str
.
Работа со строками
Форматирование строк в Python
Одной из самых частых задач, связанных со строками, является форматирование. В Python форматирование строк представляет собой процесс создания строки путем вставки значений в шаблон строки. Способов форматирования строк на Python несколько.
1. Конкатенация. Вы можете объединять строки и переменные с помощью оператора +
. Например:
name = "John" age = 30 message = "My name is " + name + " and I am " + str(age) + " years old."
Здесь функция str()
используется для преобразования целого числа age
в строку, чтобы ее можно было конкатенировать с другими строками.
2. Оператор %
. Его можно использовать для подстановки значений в строковый шаблон. Например:
name = "John" age = 30 message = "My name is %s and I am %d years old." % (name, age)
Здесь %s
– заполнитель для строкового значения, а %d
– для десятичного (целого) значения. Подставляемые значения представлены в виде кортежа (name, age)
.
3. str.format(). Для вставки значений в строковый шаблон можно использовать метод str.format()
. Например:
name = "John" age = 30 message = "My name is {} and I am {} years old.".format(name, age)
Здесь фигурные скобки {}
используются для указания места вставки значений. Подставляемые значения указываются в методе format()
.
4. f-строки. Это самый новый и широко используемый способ форматирования строк в Python. С помощью f-строк можно подставлять значения в шаблон, используя фигурные скобки {}
. Например:
name = "John" age = 30 message = f"My name is {name} and I am {age} years old."
Здесь переменные name и age
заключены в фигурные скобки внутри строкового литерала, и их значения будут интерполированы в строку. Этот способ чаще всего можно встретить в современном коде на Python.
Примечание редакции. Подробнее читайте в статье “f-строки в Python”.
Строковые методы Python
Также для работы со строками Python предоставляет несколько встроенных строковых методов. Некоторые часто используемые в Python строковые методы:
str.upper()
переводит все символы в строке в верхний регистрstr.lower()
преобразует все символы в строке в нижний регистрstr.strip()
удаляет пробельные символы (пробелы, табуляции и символы новой строки) из начала и конца строкиstr.split()
разбивает строку на список подстрок по заданному разделителюstr.join()
объединяет список строк в одну строку с использованием указанного разделителяstr.replace()
заменяет все вхождения указанной подстроки в строке на другую подстрокуstr.startswith()
возвращает True, если строка начинается с указанной подстроки, иначе Falsestr.endswith()
возвращает True, если строка заканчивается указанной подстрокой, иначе False
name = "John Doe" name = name.lower() print(name) # john doe
Это лишь некоторые из множества строковых методов, доступных в Python. Более подробную информацию о строковых методах можно найти в документации по Python.
Примечание редакции. В авторской статье эта тема опущена, но новичкам будет полезным познакомиться с комментариями в Python. В приведенном примере кода комментарий начинается с символа #, с помощью него указано, каким будет вывод кода.
Структуры данных в Python
Список
В языке Python список – это коллекция элементов любого типа, упорядоченная и изменяемая (списки мутабельны). Списки создаются путем заключения последовательности элементов, разделенных запятыми, в квадратные скобки []
. Например:
my_list = [1, 2, 3, "apple", "banana", "cherry"]
Здесь my_list
– это список, содержащий три целых числа и три строки.
Примечание редакции. О том, какие типы данных изменяемы, а какие – нет, читайте в статье “Что такое изменяемые типы данных в Python”.
Доступ к отдельным элементам списка осуществляется по их индексу, который начинается с 0 для первого элемента списка. Например:
print(my_list[0]) # выводит 1 print(my_list[3]) # выводит "apple".
Для доступа к элементам из конца списка можно также использовать отрицательную индексацию. Например:
print(my_list[-1]) # выводит " cherry" print(my_list[-3]) # печатает "apple".
Списки в Python поддерживают несколько встроенных методов для добавления, удаления и манипуляции элементами. Вот некоторые часто используемые методы:
list.append(item)
добавляет элемент в конец спискаlist.insert(index, item)
вставляет элемент на указанную позицию в спискеlist.remove(item)
удаляет первое вхождение указанного элемента из спискаlist.pop(index)
удаляет и возвращает элемент, находящийся на указанной позиции в спискеlist.sort()
сортирует элементы списка в порядке возрастанияlist.reverse()
изменяет порядок следования элементов в спискеlen(list)
возвращает количество элементов в списке
my_list.append('new') print(my_list) # [1, 2, 3, 'apple', 'banana', 'cherry', 'new'] my_list.remove('new') print(my_list) # [1, 2, 3, 'apple', 'banana', 'cherry']
Вы также можете использовать срезы для извлечения подпоследовательности из списка. Для срезов используется оператор двоеточия :
для указания начального индекса (включительно) и конечного индекса (исключительно) подпоследовательности. Например:
my_list = [1, 2, 3, 4, 5] sub_list = my_list[1:4] # returns [2, 3, 4]
Списки в Python универсальны и широко используются во многих приложениях. Они могут применяться для хранения коллекций данных, реализации алгоритмов и представления сложных структур.
Кортеж
В языке Python кортеж – это упорядоченная, неизменяемая (не подлежащая изменению) коллекция элементов. Кортежи похожи на списки, но их нельзя изменить после создания. Они создаются путем заключения последовательности значений, разделенных запятыми, в круглые скобки ()
. Например:
my_tuple = (1, 2, 3, "apple", "banana", "cherry")
Здесь my_tuple
– это кортеж, содержащий три целых числа и три строки.
К отдельным элементам кортежа можно обращаться по их индексу, как и в случае со списком. Например:
print(my_tuple[0]) # выводит 1 print(my_tuple[3]) # выводит "apple".
Однако, поскольку кортежи являются неизменяемыми, вы не можете заменять элементы после того, как кортеж создан. Например, следующий код вызовет ошибку типа TypeError
:
my_tuple[0] = 4 # выдаст TypeError: object 'tuple' does not support item assignment
Примечание редакции. О том, что такое ошибка в Python, можно почитать в статье “Ошибки и исключения в Python”.
Кортежи в Python поддерживают несколько встроенных методов для работы с ними. Вот некоторые часто используемые методы кортежей:
tuple.count(value)
возвращает количество вхождений указанного значения в кортежеtuple.index(value)
возвращает индекс первого появления указанного значения в кортежеlen(tuple)
возвращает количество элементов в кортеже
Поскольку кортежи неизменяемы, они часто используются для представления фиксированных наборов данных, которые не подлежат изменению, например, координат точки в двумерном пространстве или RGB-значений цвета. Кортежи также часто используются для возврата нескольких значений из функции. Например:
def get_name_and_age(): name = "John" age = 30 return name, age result = get_name_and_age() print(result) # выводит (" John", 30)
Здесь функция get_name_and_age()
возвращает кортеж, содержащий два значения: имя и возраст человека. Кортеж распаковывается в переменную result
, которая содержит эти два значения в виде отдельных переменных.
Множество
В языке Python множество – это неупорядоченная коллекция уникальных элементов. Множества создаются путем заключения последовательности значений, разделенных запятыми, в фигурные скобки {}
или с помощью функции-конструктора set()
. Например:
my_set = {1, 2, 3, 4, 4, 5}
Здесь my_set
– это множество, содержащее пять уникальных целых чисел (вторая четвертка во множество my_set
не попадет).
Множества в Python поддерживают несколько встроенных методов для добавления, удаления и манипулирования элементами.
Вот некоторые часто используемые методы множеств:
set.add(element)
добавляет элемент в множествоset.remove(element)
удаляет элемент из множества. Вызывает ошибкуKeyError
, если во множестве нет указанного элементаset.discard(element)
удаляет элемент из множества, если он присутствует. Не выдает ошибку, если элемент отсутствует во множествеset.pop()
удаляет и возвращает произвольный элемент из множестваset.clear()
удаляет все элементы из множестваset.union(other_set)
возвращает новое множество, содержащее все элементы из обоих множествset.intersection(other_set)
возвращает новое множество, содержащее только элементы, общие для обоих множествset.difference(other_set)
возвращает новое множество, содержащее только те элементы, которые есть в первом множестве, но отсутствуют во второмset.symmetric_difference(other_set)
возвращает новое множество, содержащее только те элементы, которые есть либо в первом, либо во втором множестве, но не в обоихlen(set)
возвращает количество элементов во множестве
Множества в Python часто используются для выполнения математических операций над множествами, таких как объединение, пересечение и разность. Они также полезны для удаления дубликатов из списка или другой последовательности. Например:
my_list = [1, 2, 3, 4, 4, 5] my_set = set(my_list) print(my_set) # выводит {1, 2, 3, 4, 5}.
Здесь конструктор set()
используется для создания множества из списка my_list
, содержащего дублирующиеся элементы. Результирующее множество my_set
содержит только уникальные элементы из списка my_list
.
Словарь
В языке Python словарь – это неупорядоченная коллекция пар ключ-значение. Словари создаются путем заключения последовательности пар ключ-значение, разделенных запятыми, в фигурные скобки {}
или с помощью функции-конструктора dict()
. Например:
my_dict = {"apple": 2, " banana": 3, " cherry": 5}
Здесь my_dict
– это словарь, в котором ключам “apple”, “banana” и “cherry” сопоставлены значения 2, 3 и 5 соответственно.
Вы можете обращаться к отдельным значениям в словаре по их ключу, например, так:
print(my_dict["apple"]) # выводит 2
Также можно добавлять в словарь новые пары ключ-значение, например, так:
my_dict["orange"] = 4
Можно изменять значение, связанное с ключом в словаре:
my_dict["banana"] = 6
Также можно удалить пару ключ-значение из словаря:
del my_dict["cherry"]
Словари в Python поддерживают несколько встроенных методов для работы с ключами и значениями, а также для запросов к ним.
Вот некоторые из этих методов:
dict.keys()
возвращает все ключи в словареdict.values()
возвращает список значений в словареdict.items()
возвращает список пар ключ-значение в словареdict.get(key, default=None)
возвращает значение, связанное с ключом в словаре, или значениеdefault
, если ключ отсутствуетdict.pop(key, default=None)
удаляет и возвращает значение, связанное с ключом в словаре, или значениеdefault
, если ключ отсутствуетdict.update(other_dict)
добавляет в словарь все пары ключ-значение из переданного словаряother_dict
, перезаписывая значения для ключей, которые уже существуют в словареlen(dict)
возвращает количество пар ключ-значение в словаре
Словари в Python часто используются для представления коллекций связанных данных, в которых каждый элемент идентифицируется уникальным ключом. Они также полезны для подсчета количества вхождений элементов в последовательность и для выполнения поиска по ключам, а не по индексам.
Функции в Python
В языке Python функция – это блок многократно используемого кода, выполняющий определенную задачу. Функции определяются с помощью ключевого слова def
, за которым следует имя функции, круглые скобки ()
и двоеточие. Затем пишется тело функции, с отступом под ее определением. Например:
def greet(name): print("Hello, " + name + "!")
Здесь greet
– это функция, которая принимает параметр name
и печатает приветствие.
Вы можете вызвать функцию, используя ее имя, за которым следуют круглые скобки, например, так:
greet("Alice") # выводит "Hello, Alice!".
Функции могут иметь несколько параметров, причем для некоторых или всех параметров можно задавать значения по умолчанию. Например:
def calculate_sum(a, b=0): return a + b
Здесь calculate_sum
– это функция, принимающая два параметра, a
и b
, со значением по умолчанию 0
для b
. Функция возвращает сумму a
и b
.
Вы можете вызвать функцию со значениями параметров по умолчанию, опустив соответствующие аргументы, например, так:
print(calculate_sum(5)) # выводит 5 print(calculate_sum(5, 10)) # выводит 15
Функции также могут возвращать значения, используя ключевое слово return
. Например:
def calculate_product(a, b): return a * b
Здесь calculate_product
– это функция, которая принимает два параметра, a
и b
, и возвращает их произведение.
Можно вызвать функцию, возвращающую значение, и использовать это значение в выражении, например, так:
result = calculate_product(3, 4) print(result) # выводит 12
Функции в Python можно использовать для разбиения сложных задач на более мелкие и управляемые части, а также для организации кода с целью повышения его читабельности и удобства поддержки. Они являются основой программирования на Python и широко используются в при создании приложений.
Условия в Python
Условные операторы в Python позволяют выполнять различные блоки кода в зависимости от того, истинны или ложны определенные условия. Наиболее часто используемым условным оператором в Python является оператор if
.
Ниже приведен пример оператора if
в Python:
x = 5 if x > 0: print("x is positive")
В этом примере оператор if
проверяет, больше ли значение x
нуля. Если условие истинно, то выполняется оператор print
, и на консоль выводится сообщение "x is positive"
.
Также можно использовать оператор else
для выполнения другого блока кода, если условие ложно.
Например:
x = -3 if x > 0: print("x is positive") else: print("x is non-positive")
В данном примере, поскольку значение x
отрицательно, условие if
ложно, и вместо него выполняется блок else
. На консоль выводится сообщение "x is non-positive"
.
Для проверки дополнительных условий после начального оператора if
можно также использовать оператор elif
(сокращение от “else if”). Например:
x = 0 if x > 0: print("x is positive") elif x < 0: print("x is negative") else: print("x is zero")
В данном примере, поскольку x равно нулю, первое условие if
ложно, и вместо него проверяется условие elif
. Поскольку x
также не отрицателен, вместо него выполняется блок else
. В консоль выводится сообщение "x is zero"
.
В условных операторах Python также можно использовать логические операторы and
, or
и not
для объединения нескольких условий. Например:
x = 10 if x > 0 and x < 100: print("x is a positive two-digit number")
В данном примере условие if
проверяет, является ли x
одновременно больше нуля и меньше 100. Если условие истинно, то выполняется функция print
.
Условные выражения в Python являются мощным инструментом для управления потоком программ и принятия решений в зависимости от различных ситуаций. Они широко используются в программах на Python для реализации логики и принятия решений на основе пользовательского ввода, значений данных и других факторов.
Циклы в Python
Циклы позволяют выполнять блок кода несколько раз. В Python существует два типа циклов: цикл for
и цикл while
.
Цикл for
используется для итерации по последовательности значений, например, по списку или строке. Пример:
fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit)
В этом примере цикл for
перебирает список фруктов и выводит каждый из них на консоль.
Цикл while
используется для многократного выполнения блока кода до тех пор, пока выполняется определенное условие. Пример:
i = 0 while i < 5: print(i) i += 1
В этом примере цикл while
выводит значение i
на консоль и каждый раз увеличивает его на 1, пока i
не станет меньше 5.
Для управления ходом цикла можно также использовать операторы break
и continue
. Оператор break
позволяет преждевременно завершить цикл, а оператор continue
– пропустить текущую итерацию цикла. Например:
for i in range(10): if i == 5: break elif i % 2 == 0: continue print(i)
В этом примере цикл for
печатает значения i
от 0 до 9, но использует оператор break
для преждевременного выхода из цикла, когда i
равно 5. Также используется оператор continue
для пропуска четных значений i
.
Примечание редакции. Циклы в Python также могут находиться внутри других циклов. Об этом читайте в статье “Вложенные циклы в Python”.
Циклы в Python являются мощным инструментом для итерации по последовательностям, многократного выполнения кода и управления потоком программы. Они широко используются в программах на Python для реализации логики и выполнения таких задач, как обработка данных, ввод-вывод файлов и взаимодействие с пользователем.
Модули в Python
В языке Python модуль – это файл, содержащий код на языке Python, который может быть импортирован в другие скрипты или модули Python. Модули позволяют организовать код в виде многократно используемых блоков и избежать коллизий имен между различными частями программы.
Чтобы использовать модуль в Python, достаточно импортировать его с помощью оператора import
. Ниже приведен пример импорта модуля math
, который предоставляет математические функции, такие как тригонометрические и логарифмические функции:
import math print(math.sqrt(25)) # prints 5.0 print(math.sin(math.pi / 2)) # prints 1.0
В этом примере мы импортируем модуль math
и используем его функции sqrt
и sin
для вычисления квадратного корня из 25 и синуса из pi/2, соответственно.
Также можно импортировать определенные функции или переменные из модуля с помощью ключевого слова from
. Например:
from math import sqrt, pi print(sqrt(25)) # prints 5.0 print(pi) # prints 3.141592653589793
В этом примере мы импортируем из модуля math только функции sqrt
и pi
, что позволяет использовать их напрямую, без префикса math
.
Python также поставляется с большой стандартной библиотекой модулей, обеспечивающих широкий спектр функциональных возможностей, таких как ввод/вывод файлов, сетевое взаимодействие и программирование графического интерфейса. Кроме того, существует множество модулей от сторонних разработчиков, доступных в списке пакетов Python (PyPI), которые можно установить с помощью менеджера пакетов pip
.
Модули в Python – это мощный инструмент для организации и повторного использования кода, а также удобный способ расширения функциональности языка. Импортируя модули, вы можете использовать уже существующий код и сосредоточиться на решении конкретных задач программирования.
Классы и объекты
Класс в Python – это шаблон или “чертеж” для создания объектов, объединяющих данные (переменные) и функции (методы) для работы с ними. Класс определяет структуру и поведение объектов определенного типа, что позволяет создавать и управлять данными более организованным и модульным способом.
Ниже приведен пример простого класса в Python:
class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print(f"Hello, my name is {self.name} and I am {self.age} years old.")
В этом примере мы определяем класс Person
с двумя атрибутами (name
и age
) и одним методом (say_hello
). Метод __init__
– это специальный метод, который вызывается при создании объекта класса. Он инициализирует атрибуты name
и age
со значениями, переданными в качестве аргументов.
Для создания объекта класса Person
можно использовать следующий синтаксис:
person1 = Person("Alice", 25) person2 = Person("Bob", 30)
В данном примере мы создаем два объекта (person1
и person2
) из класса Person с разными значениями атрибутов name
и age
.
Мы можем вызвать метод say_hello
для каждого объекта, чтобы отобразить приветствие:
person1.say_hello() # выводит "Hello, my name is Alice and I am 25 years old.". person2.say_hello() # выводит "Hello, my name is Bob and I am 30 years old.".
В этом примере мы вызываем метод say_hello
для каждого объекта, чтобы вывести персональное приветствие.
Классы и объекты являются фундаментальной концепцией объектно-ориентированного программирования (ООП) и широко используются в программах на Python для организации кода и реализации сложных систем. Определение классов позволяет создавать многократно используемый код, который легко модифицировать и расширять, а создание объектов – моделировать реальные объекты и манипулировать ими в своей программе.
Заключение
В заключение следует отметить, что Python – это универсальный и мощный язык программирования с широким спектром возможностей. Освоив азы языка, такие как переменные, типы данных, форматирование строк, структуры данных, функции, условия, циклы, модули и классы, вы сможете попробовать написать свой первый код и применить полученные знания на практике, что позволит вам в будущем стать квалифицированным разработчиком. Независимо от того, являетесь ли вы новичком или хотите усовершенствовать свои навыки, понимание этих фундаментальных концепций заложит прочный фундамент для вашего пути в разработке на Python.
Перевод статьи «Master the Basics of Python in 20 Minutes».