📖 Содержание самоучителя
- Особенности, сферы применения, установка, онлайн IDE
- Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
- Типы данных: преобразование и базовые операции
- Методы работы со строками
- Методы работы со списками и списковыми включениями
- Методы работы со словарями и генераторами словарей
- Методы работы с кортежами
- Методы работы со множествами
- Особенности цикла for
- Условный цикл while
- Функции с позиционными и именованными аргументами
- Анонимные функции
- Рекурсивные функции
- Функции высшего порядка, замыкания и декораторы
- Методы работы с файлами и файловой системой
- Регулярные выражения
- Основы скрапинга и парсинга
- Основы ООП: инкапсуляция и наследование
- Основы ООП – абстракция и полиморфизм
- Графический интерфейс на Tkinter
- Основы разработки игр на Pygame
- Основы работы с SQLite
- Основы веб-разработки на Flask
- Основы работы с NumPy
- Основы анализа данных с Pandas
***
Strip и zfill
Еще одна важная функция — это возможность удалять из строки лишние начальные и конечные символы. Для этого у нас есть семейство функций :
- Удалить пробелы по умолчанию.
- Удалить пробелы слева или справа.
- Удалить произвольные символы.
test_string_with_spaces = ' The quick brown fox jumps over the lazy dog '
test_string_with_spaces.strip()
Out: 'The quick brown fox jumps over the lazy dog'
test_string_with_spaces.lstrip()
Out: 'The quick brown fox jumps over the lazy dog '
test_string_with_spaces.rstrip()
Out: ' The quick brown fox jumps over the lazy dog'
test_string.rstrip('g')
Out: 'The quick brown fox jumps over the lazy do'
Кроме того, есть полезная функция для дополнения чисел ведущими нулями:
'29'.zfill(10) Out: '0000000029' 'xA1'.zfill(4) Out: '0xA1'
Портируемость
Python портирован и работает почти на всех известных платформах — от КПК до мейнфреймов. Существуют порты под Microsoft Windows, практически под все варианты UNIX (включая FreeBSD и Linux), Android, Plan 9, Mac OS и macOS, iPhone OS (iOS) 2.0 и выше, iPadOS, Palm OS, OS/2, Amiga, HaikuOS, AS/400, OS/390, Windows Mobile и Symbian.
По мере устаревания платформы её поддержка в основной ветви языка прекращается. Например, с версии 2.6 прекращена поддержка Windows 95, Windows 98 и Windows ME. В версии 3.5 перестала поддерживаться Windows XP В версии 3.9 перестала поддерживаться Windows Vista и Windows 7.
При этом, в отличие от многих портируемых систем, для всех основных платформ Python имеет поддержку характерных для данной платформы технологий (например, Microsoft COM/DCOM). Более того, существует специальная версия Python для виртуальной машины Java — Jython, что позволяет интерпретатору выполняться на любой системе, поддерживающей Java, при этом классы Java могут непосредственно использоваться из Python и даже быть написанными на Python. Также несколько проектов обеспечивают интеграцию с платформой Microsoft.NET, основные из которых — IronPython и Python.NET.
Проверка и тестирование регулярных выражений
- https://regex101.com/ — интерактивная консоль регулярных выражений, которая позволяет отлаживать выражения в режиме реального времени. Это означает, что вы можете создавать свои выражения и одновременно видеть, как они влияют на набор данных в реальном времени на одном экране. Инструмент был создан Фирасом Дибом при участии многих других разработчиков. Это крупнейший сервис тестирования регулярных выражений в мире.
- http://www.pyregex.com/ — онлайн-тестер регулярных выражений для проверки правильности регулярных выражений в подмножестве регулярных выражений языка Python.
- https://pythex.org/ — Pythex is a real-time regular expression editor for Python, a quick way to test your regular expressions.
Простота написания кода
Программирование на Python требует меньше строк кода по сравнению с другими языками программирования. Он способен выполнять программы в минимальном количестве строк кода. Более того, Python автоматически предоставляет помощь в определении и ассоциации типов данных.
“Python – это действительно замечательный язык. Когда кто-то приходит с хорошей идеей, уходит всего минута и пять строк кода, чтобы написать программу, которая почти делает то, что вам нужно.” — Джек Джансен
Программирование на Python основано на структуре вложенности, определяемой отступами. Этот язык способен обрабатывать длительные задачи в короткие сроки. Поскольку нет ограничений на обработку данных, вы можете выполнять вычисления на обычных компьютерах, ноутбуках, в облаке и на настольных компьютерах.
Ранее Python считался более медленным языком по сравнению с такими аналогами, как Java и Scala, но теперь ситуация понемногу меняется.
Появление платформы Anaconda позволило повысить скорость работы языка. Именно поэтому Python для работы с большими данными стал одним из самых популярных вариантов в отрасли.
Лучшие библиотеки веб-скрапинга Python
Можно создать скрипт веб-парсера с нуля с помощью ванильного Python, но это не идеальное решение. В конце концов, Python известен своим обширным выбором пакетов и, в частности, есть масса библиотек для веб-скрапинга. Пришло время рассмотреть наиболее важные из них!
Requests
Библиотека Requests позволяет выполнять HTTP-запросы на языке Python. Она упрощает отправку HTTP-запросов, особенно по сравнению со стандартной библиотекой Python HTTP. Requests играет ключевую роль в проекте для веб-скрапинга на Python. Это связано с тем, что для сбора данных, содержащихся на странице, необходимо сначала получить их с помощью HTTP-запроса GET. Кроме того, возможно, придется выполнить и другие HTTP-запросы к серверу целевого сайта.
Установить Requests можно с помощью следующей команды pip:
Beautiful Soup
Python-библиотека Beautiful Soup упрощает сбор информации со страниц. В частности, Beautiful Soup работает с любым HTML- или XML-парсером и предоставляет все необходимое для итерации, поиска и модификации абстрактного синтаксического дерева
Обратите внимание, что Beautiful Soup можно использовать вместе с html.parser — парсером, входящим в стандартную библиотеку Python и позволяющим парсить текстовые HTM-файлы. В частности, Beautiful Soup помогает обходить DOM и извлекать из него нужные данные.
Установить Beautiful Soup с помощью программы pip можно следующим образом:
Selenium
Selenium — современная система автоматизированного тестирования с открытым исходным кодом, позволяющая выполнять операции на странице в браузере. Другими словами, с его помощью можно поручить браузеру выполнение определенных задач
Обратите внимание, что Selenium также можно использовать в качестве библиотеки для веб-скрапинга благодаря его возможностям «безголового» браузера. Если вы не знакомы с этим понятием, то речь идет о веб-браузере, работающем без графического интерфейса пользователя (GUI)
Если Selenium настроен в безголовом режиме, он будет запускать управляемый браузер, образно говоря «закулисно».
Интернет-страницы, посещаемые в Selenium, отображаются в реальном браузере. Таким образом, Selenium поддерживает веб-парсинг страниц, которые используют JavaScript для рендеринга или получения данных. Selenium предоставляет все необходимое для создания парсера, не требуя использования других библиотек. Установить его можно с помощью следующей команды pip:
Изучаем исходный код сайта
В качестве источника прогнозы погоды будем использовать сайт «Яндекс.Погода». Перейдём на него и в строке поиска найдём свой город. В нашем случае это будет Москва.
Посмотрите внимательно на адресную строку — она ещё пригодится нам в дальнейшем: https://yandex.com.am/weather/?lat=55.75581741&lon=37.61764526.
Обычно в адресной строке там нет названия города, а есть географические координаты точки, для которой показана текущая погода (у нас это центр Москвы).
Теперь посмотрим на исходный код страницы и найдём место, где хранится текущая температура. Нас интересует обведённый на скриншоте сайта блок:

Скриншот: «Яндекс.Погода» / Skillbox Media
Для просмотра HTML-кода откроем «Инспектор кода». Для этого можно использовать комбинации горячих клавиш: в Google Chrome на macOS — ⌥ + ⌘ + I, на Windows — Сtrl + Shift + I или F12. Инспектор кода выглядит как дополнительное окно в браузере с несколькими вкладками:

Скриншот: «Яндекс.Погода» / Skillbox Media
Переключаться между вкладками не надо, так как вся необходимая информация уже есть на первой.
Теперь найдём блок в коде, где хранится значение температуры. Для этого следует последовательно разворачивать блоки кода, располагающиеся внутри тега <body>. Сделать это можно, нажимая на символ .
Как понять, что мы на правильном пути? Инспектор кода при наведении на блок кода подсвечивает на сайте ту область, за которую он отвечает. Переходим последовательно вглубь HTML-кода и находим нужный нам элемент.
В нашем случае пришлось проделать большой путь: элемент с классом «b‑page__container» → первый элемент с классом «content xKNTdZXiT5r0Tp0FJZNQIGlNu xIpbRdHA» → элемент с классом «xKNTdZXiT5r0vvENJ» → элемент с классом «fact card card_size_big» → элемент с классом «fact__temp-wrap xFNjfcG6O4pAfvHM» → элемент с классом «link fact__basic fact__basic_size_wide day-anchor xIpbRdHA» → элемент с классом «temp fact__temp fact__temp_size_s». Именно последнее название класса нам потребуется на следующем шаге.
Как со всем этим работать
Расскажу как всё это запустить на примере Windows 10. В Linux и macOS всё делается аналогично.
- Установите Python 3. Я использую ветку 3.5. Скачать можно с официального сайта. Ветку 3.6 пока не советую, её зарелизили всего несколько дней назад.
- Установите Grab. Лучше через pip. Это менеджер пакетов для python. Идёт с ним в комплекте.
pip install grab
Установите tqdm. Так же ставится через pip.
pip install tqdm
- Установите git. Скачать можно с официального сайта.
- Скачайте исходники себе на компьютер.
git clone https://github.com/gumbert/ydirect
- Поменяйте запросы на ваши в тексте программы. Для написания и редактирования кода я использую Sublime.
- Запустите скрипт.
python ydirect.py
Если всё сделали правильно, через некоторое время у вас будет файлик firms.csv со всеми данными.
Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации.
Python и Java: Минусы
Погрузитесь в сравнение Java и Python, рассмотрев недостатки этих двух языков.
Java
-
Многословный и менее интуитивно понятный синтаксис по сравнению с такими языками, как Python, что делает его склонным к созданию шаблонного кода.
- Потребляет больше памяти, чем большинство других языков (но не Python).
- Требует компиляции, что может замедлить разработку и тестирование.
- Сложный для новичков из-за строгой системы типов и сложной настройки.
- Не лучший выбор для небольших, легких проектов.
Python
- Медленный и требовательный к процессору, особенно по сравнению с Java и многими другими языками.
- Ограниченные возможности разработки мобильных приложений по сравнению с Java.
- Трудно сделать его масштабным.
- Проблемы перехода с Python 2 на Python 3.
- Динамическая типизация может привести к ошибкам.
Практика парсинга с Beautiful Soup
Еще один хороший ресурс для изучения скрапинга — scrapingclub.com. Там есть множество руководств по использованию инструмента Scrapy. Также имеется несколько страниц, на которых можно попрактиковаться. Начнем с этой https://scrapingclub.com/exercise/list_basic/?page=1.
Нужно просто извлечь название элемента и его цену, отобразив данные в виде списка. Шаг первый — изучить исходный код для определения HTML. Судя по всему, здесь использовался Bootstrap.

После этого должен получиться следующий код.
Копировать
Скрапинг с учетом пагинации
Ссылка выше ведет на одну страницу коллекции, включающей на самом деле несколько страниц. На это указывает в адресе. Скрипт Beautiful Soup можно настроить и так, чтобы скрапинг происходил на нескольких страницах. Вот код, который будет извлекать данные со всех связанных страниц. Когда все URL захвачены, скрипт может выполнять запросы к каждой из них и парсить результаты.
Копировать
Результат будет выглядеть следующим образом.
Этот код можно оптимизировать для более продвинутых читателей:
Копировать
Красивое структурирование HTML кода
С помощью метода prettify мы можем «красиво» структурировать исходный HTML-код.
from bs4 import BeautifulSoup
import requests as req
resp = req.get(‘http://webcode.me’)
soup = BeautifulSoup(resp.text, ‘lxml’)
print(soup.prettify())
|
1 |
from bs4 import BeautifulSoup import requests asreq resp=req.get(‘http://webcode.me’) soup=BeautifulSoup(resp.text,’lxml’) print(soup.prettify()) |
Полученный результат:
XHTML
<!DOCTYPE html>
<html lang=»en»>
<head>
<meta charset=»utf-8″/>
<meta content=»width=device-width, initial-scale=1.0″ name=»viewport»/>
<title>
My html page
</title>
</head>
<body>
<p>
Today is a beautiful day. We go swimming and fishing.
</p>
<p>
Hello there. How are you?
</p>
</body>
</html>
|
1 |
<!DOCTYPE html> <html lang=»en»> <head> <meta charset=»utf-8″/> <meta content=»width=device-width, initial-scale=1.0″name=»viewport»/> <title> My html page </title> </head> <body> <p> Today is a beautiful day. We go swimming and fishing. </p> <p> Hello there. How are you? </p> </body> </html> |
Поиск HTML-элементов по ID
С помощью метода мы можем находить элементы по различным признакам, включая id элемента.
from bs4 import BeautifulSoup
with open(‘index.html’, ‘r’) as f:
contents = f.read()
soup = BeautifulSoup(contents, ‘lxml’)
print(
soup.find(‘ul’, {‘id’: ‘mylist’})
)
|
1 |
from bs4 import BeautifulSoup with open(‘index.html’,’r’)asf contents=f.read() soup=BeautifulSoup(contents,’lxml’) print( soup.find(‘ul’,{‘id»mylist’}) ) |
Данный пример кода находит тег ul, который имеет id .
Регулярные выражения в Python
А вот наиболее популярные методы, которые предоставляет модуль:
Рассмотрим каждый из них подробнее.
re.match(pattern, string)
Этот метод ищет по заданному шаблону в начале строки. Например, если мы вызовем метод match() на строке «AV Analytics AV» с шаблоном «AV», то он завершится успешно. Но если мы будем искать «Analytics», то результат будет отрицательный:
Искомая подстрока найдена. Чтобы вывести её содержимое, применим метод group() (мы используем «r» перед строкой шаблона, чтобы показать, что это «сырая» строка в Python):
Теперь попробуем найти «Analytics» в данной строке. Поскольку строка начинается на «AV», метод вернет None :
Также есть методы start() и end() для того, чтобы узнать начальную и конечную позицию найденной строки.
Эти методы иногда очень полезны для работы со строками.
re.split(pattern, string, )
Этот метод разделяет строку по заданному шаблону.
В примере мы разделили слово «Analytics» по букве «y». Метод split() принимает также аргумент maxsplit со значением по умолчанию, равным 0. В данном случае он разделит строку столько раз, сколько возможно, но если указать этот аргумент, то разделение будет произведено не более указанного количества раз. Давайте посмотрим на примеры Python RegEx:
Мы установили параметр maxsplit равным 1, и в результате строка была разделена на две части вместо трех.
re.compile(pattern, repl, string)
Мы можем собрать регулярное выражение в отдельный объект, который может быть использован для поиска. Это также избавляет от переписывания одного и того же выражения.
До сих пор мы рассматривали поиск определенной последовательности символов. Но что, если у нас нет определенного шаблона, и нам надо вернуть набор символов из строки, отвечающий определенным правилам? Такая задача часто стоит при извлечении информации из строк. Это можно сделать, написав выражение с использованием специальных символов. Вот наиболее часто используемые из них:
| Оператор | Описание |
|---|---|
| . | Один любой символ, кроме новой строки \n. |
| ? | 0 или 1 вхождение шаблона слева |
| + | 1 и более вхождений шаблона слева |
| * | 0 и более вхождений шаблона слева |
| \w | Любая цифра или буква (\W — все, кроме буквы или цифры) |
| \d | Любая цифра 2 (\D — все, кроме цифры) |
| \s | Любой пробельный символ (\S — любой непробельный символ) |
| \b | Граница слова |
| Один из символов в скобках ( — любой символ, кроме тех, что в скобках) | |
| \ | Экранирование специальных символов (\. означает точку или \+ — знак «плюс») |
| ^ и $ | Начало и конец строки соответственно |
| От n до m вхождений ( — от 0 до m) | |
| a|b | Соответствует a или b |
| () | Группирует выражение и возвращает найденный текст |
| \t, \n, \r | Символ табуляции, новой строки и возврата каретки соответственно |
Больше информации по специальным символам можно найти в документации для регулярных выражений в Python 3.
Перейдём к практическому применению Python регулярных выражений и рассмотрим примеры.
Стандартные методы класса String
Класс String в Java обладает множеством стандартных методов, которые позволяют эффективно выполнять различные операции со строками. Ниже приведены некоторые из наиболее полезных методов класса String:
- length() – возвращает длину строки
- charAt(int index) – возвращает символ по указанному индексу
- substring(int beginIndex) – возвращает подстроку, начиная с указанного индекса
- substring(int beginIndex, int endIndex) – возвращает подстроку, начиная с указанного начального индекса и заканчивая указанным конечным индексом
- concat(String str) – объединяет указанную строку с текущей строкой
- trim() – удаляет пробелы в начале и конце строки
- toLowerCase() – преобразует все символы строки в нижний регистр
- toUpperCase() – преобразует все символы строки в верхний регистр
- replace(char oldChar, char newChar) – заменяет все вхождения указанного символа на новый символ
- indexOf(String str) – возвращает индекс первого вхождения указанной подстроки
- lastIndexOf(String str) – возвращает индекс последнего вхождения указанной подстроки
Это лишь небольшой набор методов класса String, доступных в Java. Они помогают обрабатывать и изменять строки в удобной и эффективной манере. При работе со строками в Java необходимо использовать эти методы для получения нужных результатов.
split()
Для использования метода split() необходимо вызвать его у строки, которую вы хотите разделить, и передать разделитель в качестве параметра.
Например, если у вас есть строка “Java – лучший язык программирования!”, и вы хотите разделить ее по символу “-“, можно использовать следующий код:
В результате выполнения кода каждая часть строки, разделенная символом “-“, будет сохранена в массиве parts.
Вы также можете использовать регулярные выражения в качестве разделителя. Например, чтобы разделить строку по пробелам, вы можете использовать следующий код:
В данном случае, “\\s+” – это регулярное выражение, указывающее на один или несколько пробелов в качестве разделителя.
Метод split() возвращает массив подстрок, полученных после разделения строки. Вы можете использовать эти подстроки в своей программе в соответствии с вашими потребностями.
Примечание: Если разделитель не найден в строке, метод split() вернет массив, содержащий только исходную строку.
substring()
Синтаксис метода выглядит следующим образом:
String substring(int startIndex)
String substring(int startIndex, int endIndex)
Где startIndex – это индекс символа, с которого начинается подстрока. endIndex – это индекс символа, на котором заканчивается подстрока.
Если указан только startIndex, то метод вернет подстроку, начиная с этого индекса и до конца строки.
Метод substring() очень полезен при обработке строк, например, при извлечении определенных значений из URL-адреса, парсинге даты или времени, разделении отдельных слов и т.д.
Пример использования метода:
В результате получим подстроку “world”.
Необходимо помнить, что метод substring() возвращает новую строку, исходная строка остается неизменной.
Создание парсера на Python:
Теперь перейдём к разработки парсера, тут будет два примера, первый простой, просто получим страницу и запишем в файл, а второй уже сделаем список статей из сайта, в качестве примера будем использовать сайт stopgame.ru.
Первый пример:
Первый пример очень простой, и очень короткий, вот он:
Python
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
importrequests# Импортируем библиотек Requests defmain() # URL страницы url=’https://stopgame.ru/’ # Получаем страницу r=requests.get(url) # Открываем файл withopen(‘test.html’,’w’,encoding=’utf-8′)asoutput_file # Выводим страницу в HTML файл output_file.write(r.text) if__name__==’__main__’ main() |
В этом файле мы первым делом подключили библиотеку Requests, потом создали функцию в которой будет вся логика программы.
Внутри функции мы создали переменную с адресом страницы и получили её, сделали это с помощью , которая соответственно получает данные страницы, там cookce и т.д, но нам нужен только текст.
Последнее мы открываем файл «text.html», и записываем в него весь HTML который получили, запускаем программы, открываем файл и вот что получается:

Вот такой на Python парсер страниц получился, как видите мы получили весь документ, единственное мы не получили стили, поэтому всё так выглядит, их надо отдельно парсить.
Второй пример:
Второй пример уже не много более сложный и там мы уже будем использовать библиотеку Beautiful Soup, вот код:
Python
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
importrequests# Импорт библиотеки Requests frombs4 importBeautifulSoup# Импорт библиотеки Beautiful Soup defmain() # URL страницы url=’https://stopgame.ru/news/all/p1′ # Получаем страницу r=requests.get(url) # Открываем файл withopen(‘test.html’,’w’,encoding=’utf-8′)asoutput_file # Добавляем страницу для парсинга soup=BeautifulSoup(r.text,’html.parser’) # Получаем все по селектору элементы и проходима по ним циклам foriinsoup.select(«.items > .article-summary > .article-description») # Получаем заголовок title=i.select(«.caption > a») # Добавляем заголовок во файл output_file.writelines(«<h2>»+title.text+»</h2>») if__name__==’__main__’ main() |
Тут в начале всё точно также как и в первом пример, только добавляем Beautiful Soup, потом до открытия файла опять же делаем всё как в первом примере.
Когда открыли файл, начинаем парсить страницу с помощью Beautiful Soup, и создаём цикл, где по селектору выбираем нужные элементы страницы, это делается благодаря методу и проходимся по ним циклам.
Внутри цикла же опять по селектору выбираем заголовок и добавляем его в качестве строки в файл, запускаем программу и смотрим файл.

Как видите парсер на Python с нуля работает, для этого вам нужно знать только метод , для библиотеки Beautiful Soup, ну и селекторы CSS, вот и всё.
Также для более качественного вывода в HTML, например виде таблицы, рекомендую использовать библиотеку LXML.
Начни разрабатывать игры на Python с помощью Visual Studio
Python — идеальный язык для разработки игр
Python – один из самых популярных языков программирования в мире, который с успехом применяется для разработки игр. В отличие от многих других языков, Python позволяет создавать игры быстро и с минимальными усилиями. Он простой, легко читаемый и удобный для изучения для новичков.
Python обладает библиотеками и инструментами, которые упрощают разработку игр. Библиотека Pygame, например, предоставляет множество функций для работы с графикой, звуком и управлением взаимодействия пользователя с игрой.
Visual Studio — инструмент для разработки из мечты
Visual Studio — это мощная, удобная и интуитивно понятная среда разработки, которая значительно упрощает создание приложений на Python. Она позволяет легко настраивать, отлаживать и тестировать программы, а также предоставляет множество инструментов для ускорения процесса разработки.
Visual Studio от Microsoft поддерживает Python и имеет встроенные средства разработки игр, которые помогут вам создать игры с нуля или доработать уже готовые игры. Вы можете использовать дополнительные плагины и расширения для добавления новых функций и возможностей.
Заключение
Разработка игр на Python стала более доступной и простой с помощью среды разработки Visual Studio. Она позволяет создавать игры быстро и удобно благодаря большому количеству инструментов и библиотек. Если вы хотите научиться разрабатывать игры на Python, то эта книга от Visual Studio на русском языке поможет вам быстрее и проще освоить все необходимые навыки.
Основные элементы языка Python
Язык Python имеет много встроенных типов данных. В этом разделе приводится их перечень, для того чтобы сознательно понимать необходимость преобразования одного типа данных на другой в процессе программирования арифметических и других типов выражений.
Любая конструкция языка программирования начинается с алфавита. Из символов алфавита создаются лексемы (token). Лексема — это минимальная единица языка, которая имеет определенное самостоятельное значение и который понимает транслятор. Если транслятор ее не понимает, то выдается сообщение об ошибке в программе. По умолчанию символы кодируются в системе UTF-8.
Различают следующие виды лексем:
- ключевые (зарезервированные) слова (keywords)
- идентификаторы (identifiers)
- литералы (константы)
- операции;
- знаки препинания.
В языке Python используется несколько десятков ключевых (зарезервированных) слов (например, int, list, input, print, float и др.). С их назначением мы будем знакомиться постепенно, по мере возникновения надобности в их применении.
Идентификаторы (имена) используются для обозначения переменных, функций, которые создает программист, и других объектов. Идентификатор переменной может состоять из латинских букв, цифр и знака подчеркивания. Первым символом имени не может быть цифра или знак подчеркивания.
В системе (среде) программирования IDLE правильные имена переменных высвечиваются черным цветом. Если имя переменной отображается другим цветом, его необходимо заменить. Одинаковые имена с буквами на разных регистрах воспринимаются как разные имена. Например, идентификаторы ster и Ster является разными именами.
Имена переменных используются для доступа к данным. Данные в языке Python представлены в форме объектов. То есть объект — это участок памяти с определенным значением и возможными операциями его обработки. Каждый объект имеет свой тип, например int (целое число), str (строка) и др. В языке Python существуют базовые объектные типы (встроенные в язык) и разрабатываемые пользователем средствами самого языка или другими средствами. Отметим, что переменные хранят не сам объект, а ссылку на объект, то есть адрес объекта в памяти компьютера.
Как уже отмечалось, в языке Python применяется динамическая типизация переменных. Это значит, что не нужно объявлять типы переменных, как это делается во многих языках программирования, поскольку их тип определяется автоматически в процессе присваивания им значений. Этот тип определяется значением, расположенным справа от оператора присваивания, который обозначается знаком (=).
В одной строке можно присвоить одинаковые значения нескольким переменным, например:
Еще раз отметим, что после выполнения оператора присваивания в переменной хранится не сам объект, а лишь ссылка на него, то есть адрес участка памяти, в которой хранится объект. Поэтому следует быть достаточно внимательным при записи групповых операций. Рассмотрим такой фрагмент программы.
Из примера видно, что создается два объекта (х и у) типа list, но они имеют один и ту же адрес памяти, то есть реально создается один объект, значение которого выводится дважды. Для подтверждения этого изменим значение нулевого элемента объекта в (нумерация элементов в списке начинается с нуля) и проверим значения объектов.
Из примера видно, что мы изменили только значение y, а фактически объекты имеют одинаковые значения, потому что реально и х, и у имеют одинаковый адрес, то есть являются одним объектом.
Чтобы получить два объекта х и у, необходимо выполнить присваивание отдельно для каждого из них, например:
Для проверки, ссылаются две переменные на один и тот же объект, используется оператор is. Если переменные ссылаются на один объект, то оператор возвращает значение True, иначе — значение False.
Одним оператором присваивания можно присвоить различные значения нескольким переменным. В таком случае переменные и значения отделяются запятой, например:
Количество элементов слева и справа от оператора присваивания должно быть одинаково, иначе будет выдано сообщение о синтаксической ошибке. Например, ошибка будет выдана для такой инструкции:
Избавиться от этого явления можно с помощью символа «звездочка» (*), который размещается перед одной из переменных. В таком случае эта переменная содержит список из всех лишних значений.
Примечания
- . www.kommersant.uk. Дата обращения: 30 августа 2023.
- (англ.). www.oreilly.com. Дата обращения: 30 августа 2023.
- ↑ . CNews.ru. Дата обращения: 30 августа 2023.
- ↑ Смирнов, Илья . magicmethod.ru. Дата обращения: 30 августа 2023.
- . webformyself.com. Дата обращения: 30 августа 2023.
- программист, Типичный (рус.) ?. Tproger (9 апреля 2020). Дата обращения: 30 августа 2023.
- (рус.) ?. Блог Python разработчика (8 мая 2021). Дата обращения: 30 августа 2023.
- (англ.). www.damonkohler.com. Дата обращения: 19 декабря 2009.
- (англ.). Python v2.6.1 documentation. What’s New in Python 2.6. Python Software Foundation. Дата обращения: 11 декабря 2008.
- (англ.). Python Documentation. Python Software Foundation. Дата обращения: 8 июня 2020.
- (англ.). Дата обращения: 10 января 2021.
- ↑ . Proghunter.ru — сайт о программировании на понятном языке (2023). Дата обращения: 30 августа 2023.
- (неопр.). . Дата обращения: 30 августа 2023.
- . skine.ru. Дата обращения: 30 августа 2023.
- . senior.ua (15 сентября 2020). Дата обращения: 30 августа 2023.
- . Skysmart. Дата обращения: 30 августа 2023.
- Гормалева, Наталья . rb.ru (24 мая 2023). Дата обращения: 30 августа 2023.
- ProductStar . DTF (7 марта 2023). Дата обращения: 30 августа 2023.



























