HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>1 мар 2023</li>
2 <ul><li>1 мар 2023</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Как хранить данные в Python, чтобы обращаться к ним было легко и приятно.</p>
4 </ul><p>Как хранить данные в Python, чтобы обращаться к ним было легко и приятно.</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6 <p>Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.</p>
6 <p>Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.</p>
7 <p>Если вы откроете любую программу в Python, то, скорее всего, увидите много таких равенств:</p>
7 <p>Если вы откроете любую программу в Python, то, скорее всего, увидите много таких равенств:</p>
8 x = 4 name = 'Виктория' coin_flipping_result = ['орёл', 'решка', 'решка', 'орёл']<p>Всё это -<strong>переменные</strong>. Программисты пользуются переменными, чтобы хранить в памяти компьютера данные и проводить с ними различные операции. О том, как это делается, и пойдёт наш рассказ.</p>
8 x = 4 name = 'Виктория' coin_flipping_result = ['орёл', 'решка', 'решка', 'орёл']<p>Всё это -<strong>переменные</strong>. Программисты пользуются переменными, чтобы хранить в памяти компьютера данные и проводить с ними различные операции. О том, как это делается, и пойдёт наш рассказ.</p>
9 <p><strong>Переменная</strong> - это область памяти компьютера, у которой есть имя. Структурно она состоит из трёх частей:</p>
9 <p><strong>Переменная</strong> - это область памяти компьютера, у которой есть имя. Структурно она состоит из трёх частей:</p>
10 <ul><li><strong>Имя,</strong><strong>или идентификатор,</strong> - это название, придуманное программистом, чтобы обращаться к переменной. В примерах выше это x, name и coin_flipping_result.</li>
10 <ul><li><strong>Имя,</strong><strong>или идентификатор,</strong> - это название, придуманное программистом, чтобы обращаться к переменной. В примерах выше это x, name и coin_flipping_result.</li>
11 <li><strong>Значение</strong> - это информация, которая хранится в памяти компьютера и с которой работает программа. В примерах выше это 4, 'Виктория' и ['орёл', 'решка', 'решка', 'орёл']. Они всегда принадлежат к какому-либо<a>типу данных</a>.</li>
11 <li><strong>Значение</strong> - это информация, которая хранится в памяти компьютера и с которой работает программа. В примерах выше это 4, 'Виктория' и ['орёл', 'решка', 'решка', 'орёл']. Они всегда принадлежат к какому-либо<a>типу данных</a>.</li>
12 <li><strong>Адрес</strong> - это номер ячейки памяти, в которой хранится значение переменной.</li>
12 <li><strong>Адрес</strong> - это номер ячейки памяти, в которой хранится значение переменной.</li>
13 </ul><p>Приведём наглядную аналогию. Представьте большой производственный склад, заполненный стеллажами, на которых стоят коробки. Склад - это общая память компьютера. Допустим, на третьем стеллаже, на второй полке, в шестой ячейке стоит какая-нибудь коробка. Если в неё что-нибудь положить и наклеить этикетку с названием - коробка будет переменной. То, что в ней лежит, - это её значение. Третий стеллаж, вторая полка, пятая ячейка - её адрес, а этикетка - её имя.</p>
13 </ul><p>Приведём наглядную аналогию. Представьте большой производственный склад, заполненный стеллажами, на которых стоят коробки. Склад - это общая память компьютера. Допустим, на третьем стеллаже, на второй полке, в шестой ячейке стоит какая-нибудь коробка. Если в неё что-нибудь положить и наклеить этикетку с названием - коробка будет переменной. То, что в ней лежит, - это её значение. Третий стеллаж, вторая полка, пятая ячейка - её адрес, а этикетка - её имя.</p>
14 Наглядное представление переменной в PythonИнфографика: Майя Мальгина для Skillbox Media<p>Создавая переменную на языке Python, программисты придумывают ей названия по определённым<strong>правилам именования</strong>:</p>
14 Наглядное представление переменной в PythonИнфографика: Майя Мальгина для Skillbox Media<p>Создавая переменную на языке Python, программисты придумывают ей названия по определённым<strong>правилам именования</strong>:</p>
15 <ul><li>первый символ должен быть заглавной или строчной латинской буквой или нижним подчёркиванием _;</li>
15 <ul><li>первый символ должен быть заглавной или строчной латинской буквой или нижним подчёркиванием _;</li>
16 <li>остальные символы могут быть заглавными или строчными латинскими буквами, нижними подчёркиваниями и цифрами;</li>
16 <li>остальные символы могут быть заглавными или строчными латинскими буквами, нижними подчёркиваниями и цифрами;</li>
17 <li>нельзя использовать пробелы;</li>
17 <li>нельзя использовать пробелы;</li>
18 <li>имя переменной не должно совпадать ни с каким из зарезервированных в Python ключевых слов.</li>
18 <li>имя переменной не должно совпадать ни с каким из зарезервированных в Python ключевых слов.</li>
19 </ul><p>Приведём несколько примеров.</p>
19 </ul><p>Приведём несколько примеров.</p>
20 <ul><li>Какие имена можно давать переменным: x, X, xyz, _x_y_z, XYZ, xyz_123, _123, x1Y2z2.</li>
20 <ul><li>Какие имена можно давать переменным: x, X, xyz, _x_y_z, XYZ, xyz_123, _123, x1Y2z2.</li>
21 <li>Как нельзя называть переменные: 1, 1x, x y z, x&amp;y.</li>
21 <li>Как нельзя называть переменные: 1, 1x, x y z, x&amp;y.</li>
22 </ul><p>Python чувствителен к регистру. Таким образом, name и Name будут считаться разными переменными.</p>
22 </ul><p>Python чувствителен к регистру. Таким образом, name и Name будут считаться разными переменными.</p>
23 <p>Хотя переменные можно называть именами стандартных библиотечных функций, делать так не стоит - это закроет доступ к функции:</p>
23 <p>Хотя переменные можно называть именами стандартных библиотечных функций, делать так не стоит - это закроет доступ к функции:</p>
24 print('Hello, world!') &gt;&gt;&gt; Hello, world! print = 14 print('Hello, world') &gt;&gt;&gt; TypeError: 'int' object is not callable<p>Чуть позже мы объясним, почему так происходит.</p>
24 print('Hello, world!') &gt;&gt;&gt; Hello, world! print = 14 print('Hello, world') &gt;&gt;&gt; TypeError: 'int' object is not callable<p>Чуть позже мы объясним, почему так происходит.</p>
25 <p>Синтаксис Python позволяет использовать разные стили для именования переменных:</p>
25 <p>Синтаксис Python позволяет использовать разные стили для именования переменных:</p>
26 <ul><li>lowercase - все буквы строчные;</li>
26 <ul><li>lowercase - все буквы строчные;</li>
27 <li>lower_case_with_underscores - все буквы строчные, между словами нижние подчёркивания;</li>
27 <li>lower_case_with_underscores - все буквы строчные, между словами нижние подчёркивания;</li>
28 <li>UPPERCASE - все буквы заглавные;</li>
28 <li>UPPERCASE - все буквы заглавные;</li>
29 <li>UPPER_CASE_WITH_UNDERSCORES - все буквы заглавные, между словами нижние подчёркивания;</li>
29 <li>UPPER_CASE_WITH_UNDERSCORES - все буквы заглавные, между словами нижние подчёркивания;</li>
30 <li>CamelCase - каждое слово начинается с заглавной буквы;</li>
30 <li>CamelCase - каждое слово начинается с заглавной буквы;</li>
31 <li>mixedCase - каждое слово, кроме первого, начинается с заглавной буквы;</li>
31 <li>mixedCase - каждое слово, кроме первого, начинается с заглавной буквы;</li>
32 <li>Camel_Case_With_Underscores - каждое слово начинается с заглавной буквы, между словами нижние подчёркивания (это некрасиво, никогда так не делайте).</li>
32 <li>Camel_Case_With_Underscores - каждое слово начинается с заглавной буквы, между словами нижние подчёркивания (это некрасиво, никогда так не делайте).</li>
33 </ul><p>Тем не менее среди Python-разработчиков принят<strong>стандарт PEP 8</strong> - это руководство, в котором собраны рекомендации по оформлению кода. То есть сообщество само для себя устанавливает дополнительные ограничения при именовании переменных:</p>
33 </ul><p>Тем не менее среди Python-разработчиков принят<strong>стандарт PEP 8</strong> - это руководство, в котором собраны рекомендации по оформлению кода. То есть сообщество само для себя устанавливает дополнительные ограничения при именовании переменных:</p>
34 <ul><li>использовать lowercase, при необходимости разбивая слова нижними подчёркиваниями, если это нужно для улучшения читаемости;</li>
34 <ul><li>использовать lowercase, при необходимости разбивая слова нижними подчёркиваниями, если это нужно для улучшения читаемости;</li>
35 <li>если в готовом проекте преобладает mixedCase, то писать стоит в этом стиле - чтобы сохранялась обратная совместимость;</li>
35 <li>если в готовом проекте преобладает mixedCase, то писать стоит в этом стиле - чтобы сохранялась обратная совместимость;</li>
36 <li>не давать имена l (строчная L), O (заглавная o) и I (заглавная i) - в некоторых шрифтах они неотличимы от нуля и единицы.</li>
36 <li>не давать имена l (строчная L), O (заглавная o) и I (заглавная i) - в некоторых шрифтах они неотличимы от нуля и единицы.</li>
37 </ul><p>Следуйте советам<a>PEP 8</a>, чтобы ваш код был понятным и легко поддерживаемым.</p>
37 </ul><p>Следуйте советам<a>PEP 8</a>, чтобы ваш код был понятным и легко поддерживаемым.</p>
38 <p>Python - язык с динамической типизацией. То есть значения присваиваются переменным не при компиляции, а построчно во время выполнения программы.</p>
38 <p>Python - язык с динамической типизацией. То есть значения присваиваются переменным не при компиляции, а построчно во время выполнения программы.</p>
39 <p>Поэтому в Python объявлять переменную отдельно не нужно - достаточно сразу её <strong>инициализировать, то есть присвоить значение</strong>. Для этого используют знак равно =.</p>
39 <p>Поэтому в Python объявлять переменную отдельно не нужно - достаточно сразу её <strong>инициализировать, то есть присвоить значение</strong>. Для этого используют знак равно =.</p>
40 <p>Более того, потом ей же можно присвоить значение другого типа:</p>
40 <p>Более того, потом ей же можно присвоить значение другого типа:</p>
41 x = 4 print(x) &gt;&gt;&gt; 4 x = 'слово' print(x) &gt;&gt;&gt; слово<p>В языках со статической типизацией, таких как C++ и Java, подобный трюк не пройдёт: компилятор сообщит об ошибке - ведь переменная изначально хранила целое число, а не строку. А в Python это возможно, потому что переменные ссылаются не на сами данные, а на их адрес в памяти.</p>
41 x = 4 print(x) &gt;&gt;&gt; 4 x = 'слово' print(x) &gt;&gt;&gt; слово<p>В языках со статической типизацией, таких как C++ и Java, подобный трюк не пройдёт: компилятор сообщит об ошибке - ведь переменная изначально хранила целое число, а не строку. А в Python это возможно, потому что переменные ссылаются не на сами данные, а на их адрес в памяти.</p>
42 <p>В Python все данные представлены в виде<strong>объектов</strong>. У каждого из них есть свой<strong>идентификатор</strong> - адрес области памяти, в которой он находится.</p>
42 <p>В Python все данные представлены в виде<strong>объектов</strong>. У каждого из них есть свой<strong>идентификатор</strong> - адрес области памяти, в которой он находится.</p>
43 <p>Этот идентификатор можно узнать с помощью функции id():</p>
43 <p>Этот идентификатор можно узнать с помощью функции id():</p>
44 x = 4 print(id(x)) &gt;&gt;&gt; 2056817043856<p>Когда мы инициализировали x, программа создала объект с числом 4, принадлежащий к <a>классу (типу данных)</a>int.</p>
44 x = 4 print(id(x)) &gt;&gt;&gt; 2056817043856<p>Когда мы инициализировали x, программа создала объект с числом 4, принадлежащий к <a>классу (типу данных)</a>int.</p>
45 <p>При этом внутри переменной<strong>содержится не сам объект, а его адрес</strong>. Это легко проверить, создав ещё одну переменную, в которой будет находиться та же самая четвёрка.</p>
45 <p>При этом внутри переменной<strong>содержится не сам объект, а его адрес</strong>. Это легко проверить, создав ещё одну переменную, в которой будет находиться та же самая четвёрка.</p>
46 y = 4 print(id(y)) &gt;&gt;&gt; 2056817043856<p>Выглядит это так:</p>
46 y = 4 print(id(y)) &gt;&gt;&gt; 2056817043856<p>Выглядит это так:</p>
47 Объект один, адрес один, а ссылающихся на него переменных - двеИнфографика: Майя Мальгина для Skillbox Media<p>В любой момент мы можем присвоить переменной новое значение. Тогда она станет ссылаться на другой объект:</p>
47 Объект один, адрес один, а ссылающихся на него переменных - двеИнфографика: Майя Мальгина для Skillbox Media<p>В любой момент мы можем присвоить переменной новое значение. Тогда она станет ссылаться на другой объект:</p>
48 x = 1.2 y = 'строка'<p>Теперь x и y ссылаются на другие объекты с другими адресами. И так как больше ни одна переменная не ссылается на объект по адресу 2056817043856, то его автоматически удалит сборщик мусора.</p>
48 x = 1.2 y = 'строка'<p>Теперь x и y ссылаются на другие объекты с другими адресами. И так как больше ни одна переменная не ссылается на объект по адресу 2056817043856, то его автоматически удалит сборщик мусора.</p>
49 <p>Если нескольким переменным нужно<strong>присвоить одно и то же значение</strong>, это можно сделать в одну строку с помощью следующей конструкции:</p>
49 <p>Если нескольким переменным нужно<strong>присвоить одно и то же значение</strong>, это можно сделать в одну строку с помощью следующей конструкции:</p>
50 x = y = z = 4<p>Проверим:</p>
50 x = y = z = 4<p>Проверим:</p>
51 print(x, y, z) &gt;&gt;&gt; 4 4 4<p>Для<strong>присвоения разных значений</strong>тоже есть способ:</p>
51 print(x, y, z) &gt;&gt;&gt; 4 4 4<p>Для<strong>присвоения разных значений</strong>тоже есть способ:</p>
52 x, y, z = 1, 'игрек', ['список', 'со', 'строками'] print(x, y, z) &gt;&gt;&gt; 1 игрек ['список', 'со', 'строками']<p>Если переменную нужно<strong>импортировать из другого файла</strong>, то используют конструкцию from &lt;имя файла&gt; import &lt;имя переменной&gt;.</p>
52 x, y, z = 1, 'игрек', ['список', 'со', 'строками'] print(x, y, z) &gt;&gt;&gt; 1 игрек ['список', 'со', 'строками']<p>Если переменную нужно<strong>импортировать из другого файла</strong>, то используют конструкцию from &lt;имя файла&gt; import &lt;имя переменной&gt;.</p>
53 <p>Например, у нас есть файл variables1.py:</p>
53 <p>Например, у нас есть файл variables1.py:</p>
54 name = 'Виктория' age = 23 city = 'Москва'<p>Используем переменную name в файле variables2.py:</p>
54 name = 'Виктория' age = 23 city = 'Москва'<p>Используем переменную name в файле variables2.py:</p>
55 from variables1 import name print(name) &gt;&gt;&gt; Виктория<p>При этом доступа к другим переменным из variables1.py в таком случае нет:</p>
55 from variables1 import name print(name) &gt;&gt;&gt; Виктория<p>При этом доступа к другим переменным из variables1.py в таком случае нет:</p>
56 from variables1 import name print(age) &gt;&gt;&gt; NameError: name 'age' is not defined<p>Чтобы<strong>импортировать несколько переменных</strong>, их можно перечислить через запятую:</p>
56 from variables1 import name print(age) &gt;&gt;&gt; NameError: name 'age' is not defined<p>Чтобы<strong>импортировать несколько переменных</strong>, их можно перечислить через запятую:</p>
57 from variables1 import name, age print(name, age) &gt;&gt;&gt; Виктория 23<p>Для<strong>импорта всех объектов</strong>после import ставят звёздочку *:</p>
57 from variables1 import name, age print(name, age) &gt;&gt;&gt; Виктория 23<p>Для<strong>импорта всех объектов</strong>после import ставят звёздочку *:</p>
58 from variables1 import * print(name, age, city) &gt;&gt;&gt; Виктория 23 Москва<p>Чтобы<strong>удалить переменную</strong>, используют ключевое слово del:</p>
58 from variables1 import * print(name, age, city) &gt;&gt;&gt; Виктория 23 Москва<p>Чтобы<strong>удалить переменную</strong>, используют ключевое слово del:</p>
59 x = 4 del x print(x) &gt;&gt;&gt; NameError: name 'x' is not defined<p>Все переменные существуют внутри определённой<strong>области видимости</strong>. В Python их три:</p>
59 x = 4 del x print(x) &gt;&gt;&gt; NameError: name 'x' is not defined<p>Все переменные существуют внутри определённой<strong>области видимости</strong>. В Python их три:</p>
60 <ul><li>локальная - внутри одной функции;</li>
60 <ul><li>локальная - внутри одной функции;</li>
61 <li>глобальная - внутри целой программы (py-файла);</li>
61 <li>глобальная - внутри целой программы (py-файла);</li>
62 <li>нелокальная - внутри двух смежных функций (внутренней и внешней).</li>
62 <li>нелокальная - внутри двух смежных функций (внутренней и внешней).</li>
63 </ul><p>Переменные, которые принадлежат к той или иной области видимости, образуют её <strong>пространство имён</strong>.</p>
63 </ul><p>Переменные, которые принадлежат к той или иной области видимости, образуют её <strong>пространство имён</strong>.</p>
64 <p>Любые переменные, которые объявлены внутри функции, остаются только в этой функции. Например:</p>
64 <p>Любые переменные, которые объявлены внутри функции, остаются только в этой функции. Например:</p>
65 def local_namespace(): x = 4 x = x ** 2 return x print(local_namespace()) &gt;&gt;&gt; 16<p>Мы можем, как обычно, распоряжаться x: изменять значение, проводить операции, возвращать - но только до тех пор, пока мы делаем это внутри функции local_namespace().</p>
65 def local_namespace(): x = 4 x = x ** 2 return x print(local_namespace()) &gt;&gt;&gt; 16<p>Мы можем, как обычно, распоряжаться x: изменять значение, проводить операции, возвращать - но только до тех пор, пока мы делаем это внутри функции local_namespace().</p>
66 <p>Если мы решим обратиться к x где-то в другой части программы, то интерпретатор её просто не увидит:</p>
66 <p>Если мы решим обратиться к x где-то в другой части программы, то интерпретатор её просто не увидит:</p>
67 def local_namespace(): x = 4 x = x ** 2 return x print(x) &gt;&gt;&gt; NameError: name 'x' is not defined<p>И наоборот: функция может распоряжаться только теми переменными, которые находятся внутри неё:</p>
67 def local_namespace(): x = 4 x = x ** 2 return x print(x) &gt;&gt;&gt; NameError: name 'x' is not defined<p>И наоборот: функция может распоряжаться только теми переменными, которые находятся внутри неё:</p>
68 x = 4 def local_namespace(): x = x ** 2 return x print(local_namespace()) &gt;&gt;&gt; UnboundLocalError: local variable 'x' referenced before assignment<p>При этом функция может считывать переменные из глобальной области видимости - просто не имеет права изменять их.</p>
68 x = 4 def local_namespace(): x = x ** 2 return x print(local_namespace()) &gt;&gt;&gt; UnboundLocalError: local variable 'x' referenced before assignment<p>При этом функция может считывать переменные из глобальной области видимости - просто не имеет права изменять их.</p>
69 x = 4 def local_namespace(): y = x ** 2 return y print(x) print(local_namespace()) &gt;&gt;&gt; 4 &gt;&gt;&gt; 16<p>В итоге внутри одной программы может быть сразу несколько переменных с одним и тем же именем. Для этого они должны находиться в разных пространствах имён:</p>
69 x = 4 def local_namespace(): y = x ** 2 return y print(x) print(local_namespace()) &gt;&gt;&gt; 4 &gt;&gt;&gt; 16<p>В итоге внутри одной программы может быть сразу несколько переменных с одним и тем же именем. Для этого они должны находиться в разных пространствах имён:</p>
70 x = 0 def local_namespace(): x = 4 x = x ** 2 return x print(x) print(local_namespace()) &gt;&gt;&gt; 0 &gt;&gt;&gt; 16<p>Любая переменная, которую объявляют вне функций, является<strong>глобальной</strong>. Она существует в пространстве имён всего py-файла.</p>
70 x = 0 def local_namespace(): x = 4 x = x ** 2 return x print(x) print(local_namespace()) &gt;&gt;&gt; 0 &gt;&gt;&gt; 16<p>Любая переменная, которую объявляют вне функций, является<strong>глобальной</strong>. Она существует в пространстве имён всего py-файла.</p>
71 <p>Как мы показали выше, к ней можно обратиться внутри функции, но нельзя изменять. Чтобы исправить это, существует ключевое слово global:</p>
71 <p>Как мы показали выше, к ней можно обратиться внутри функции, но нельзя изменять. Чтобы исправить это, существует ключевое слово global:</p>
72 x = 4 def local_namespace(): global x x = x ** 2 return x print(local_namespace()) &gt;&gt;&gt; 16<p>Если мы создаём новую переменную внутри функции, то тем же ключевым словом global можем сделать её глобальной:</p>
72 x = 4 def local_namespace(): global x x = x ** 2 return x print(local_namespace()) &gt;&gt;&gt; 16<p>Если мы создаём новую переменную внутри функции, то тем же ключевым словом global можем сделать её глобальной:</p>
73 def local_namespace(): global x x = 4 return x print(local_namespace()) print(x) &gt;&gt;&gt; 4 &gt;&gt;&gt; 4<p><strong>Нелокальные переменные</strong>используются, когда<strong>одна функция вложена в другую</strong>, и охватывают пространство имён только этих двух функций.</p>
73 def local_namespace(): global x x = 4 return x print(local_namespace()) print(x) &gt;&gt;&gt; 4 &gt;&gt;&gt; 4<p><strong>Нелокальные переменные</strong>используются, когда<strong>одна функция вложена в другую</strong>, и охватывают пространство имён только этих двух функций.</p>
74 <p>Их создают с помощью ключевого слова nonlocal.</p>
74 <p>Их создают с помощью ключевого слова nonlocal.</p>
75 def nonlocal_namespace(): x = 4 def local_namespace(): nonlocal x x = x ** 2 return x return local_namespace() print(nonlocal_namespace()) &gt;&gt;&gt; 16<p>При этом в глобальной области видимости к нелокальной переменной мы обратиться не можем:</p>
75 def nonlocal_namespace(): x = 4 def local_namespace(): nonlocal x x = x ** 2 return x return local_namespace() print(nonlocal_namespace()) &gt;&gt;&gt; 16<p>При этом в глобальной области видимости к нелокальной переменной мы обратиться не можем:</p>
76 def nonlocal_namespace(): x = 4 def local_namespace(): nonlocal x x = x ** 2 return x return local_namespace() print(x) &gt;&gt;&gt; NameError: name 'x' is not defined<p>В Python есть функции globals() и locals(). Они возвращают<strong>словарь с таблицей глобальных и локальных символов</strong>соответственно. В них, помимо прочего, хранятся данные о переменных.</p>
76 def nonlocal_namespace(): x = 4 def local_namespace(): nonlocal x x = x ** 2 return x return local_namespace() print(x) &gt;&gt;&gt; NameError: name 'x' is not defined<p>В Python есть функции globals() и locals(). Они возвращают<strong>словарь с таблицей глобальных и локальных символов</strong>соответственно. В них, помимо прочего, хранятся данные о переменных.</p>
77 <p>Ключом в этих словарях является строка с именем переменной - так можно<strong>проверить её существование</strong>:</p>
77 <p>Ключом в этих словарях является строка с именем переменной - так можно<strong>проверить её существование</strong>:</p>
78 name = 'Виктория' if 'name' in globals(): print(True) &gt;&gt;&gt; True<p>Также из этого словаря по имени переменной можно<strong>достать её значение</strong>:</p>
78 name = 'Виктория' if 'name' in globals(): print(True) &gt;&gt;&gt; True<p>Также из этого словаря по имени переменной можно<strong>достать её значение</strong>:</p>
79 name = 'Виктория' if 'name' in globals(): print(globals().get('name')) &gt;&gt;&gt; Виктория<p>Точно так же можно делать и в локальной области видимости:</p>
79 name = 'Виктория' if 'name' in globals(): print(globals().get('name')) &gt;&gt;&gt; Виктория<p>Точно так же можно делать и в локальной области видимости:</p>
80 def local_namespace(): name = 'Виктория' if 'name' in locals(): print(locals().get('name')) local_namespace() &gt;&gt;&gt; Виктория<p>В Python, в отличие от многих других языков программирования, нет особого типа данных для хранения больших чисел. Все целые числа относятся к классу int, все числа с плавающей запятой - к классу float.</p>
80 def local_namespace(): name = 'Виктория' if 'name' in locals(): print(locals().get('name')) local_namespace() &gt;&gt;&gt; Виктория<p>В Python, в отличие от многих других языков программирования, нет особого типа данных для хранения больших чисел. Все целые числа относятся к классу int, все числа с плавающей запятой - к классу float.</p>
81 <p>При этом никаких ограничений эти классы не предусматривают. Любая переменная любого типа данных может<strong>содержать в себе сколь угодно большое значение</strong>, пока хватает памяти компьютера.</p>
81 <p>При этом никаких ограничений эти классы не предусматривают. Любая переменная любого типа данных может<strong>содержать в себе сколь угодно большое значение</strong>, пока хватает памяти компьютера.</p>
82 <p>Для печати в Python используется функция print(). С её помощью можно<strong>вывести как одиночную переменную, так и несколько</strong>, перечислив их через запятую:</p>
82 <p>Для печати в Python используется функция print(). С её помощью можно<strong>вывести как одиночную переменную, так и несколько</strong>, перечислив их через запятую:</p>
83 name, age, city = 'Виктория', 23, 'Москва' print(name) print(name, age, city) &gt;&gt;&gt; Виктория &gt;&gt;&gt; Виктория 23 Москва<p>Также в Python можно<strong>форматировать печать переменных</strong>. Для этого предусмотрено несколько способов, но самый удобный из них -<strong>f-строки</strong>. Нужно передать функции print() строку c буквой f перед ней. Сами переменные указываются в фигурных скобках: {имя переменной}.</p>
83 name, age, city = 'Виктория', 23, 'Москва' print(name) print(name, age, city) &gt;&gt;&gt; Виктория &gt;&gt;&gt; Виктория 23 Москва<p>Также в Python можно<strong>форматировать печать переменных</strong>. Для этого предусмотрено несколько способов, но самый удобный из них -<strong>f-строки</strong>. Нужно передать функции print() строку c буквой f перед ней. Сами переменные указываются в фигурных скобках: {имя переменной}.</p>
84 name, age, city = 'Виктория', 23, 'Москва' print(f'Имя: {name}. Возраст: {age}. Город: {city}.') &gt;&gt;&gt; Имя: Виктория. Возраст: 23. Город: Москва.<ul><li><strong>Переменные</strong>в Python состоят из <strong>имени</strong>и <strong>значения</strong>. При этом они хранят в себе не само значение, а <strong>ссылку на его адрес в памяти</strong>.</li>
84 name, age, city = 'Виктория', 23, 'Москва' print(f'Имя: {name}. Возраст: {age}. Город: {city}.') &gt;&gt;&gt; Имя: Виктория. Возраст: 23. Город: Москва.<ul><li><strong>Переменные</strong>в Python состоят из <strong>имени</strong>и <strong>значения</strong>. При этом они хранят в себе не само значение, а <strong>ссылку на его адрес в памяти</strong>.</li>
85 <li>Для их именования используют цифры (не могут быть первым символом в имени), латинские буквы и нижние подчёркивания.</li>
85 <li>Для их именования используют цифры (не могут быть первым символом в имени), латинские буквы и нижние подчёркивания.</li>
86 <li>В Python не надо отдельно объявлять переменную - ей<strong>сразу присваивают значение</strong>. В одной строке можно создать сразу несколько переменных.</li>
86 <li>В Python не надо отдельно объявлять переменную - ей<strong>сразу присваивают значение</strong>. В одной строке можно создать сразу несколько переменных.</li>
87 <li>Они существуют внутри определённой<strong>области видимости</strong>. Переменные бывают<strong>глобальные</strong>(внутри всей программы),<strong>локальные</strong>(внутри одной функции) и <strong>нелокальные</strong>(внутри двух вложенных друг в друга функций).</li>
87 <li>Они существуют внутри определённой<strong>области видимости</strong>. Переменные бывают<strong>глобальные</strong>(внутри всей программы),<strong>локальные</strong>(внутри одной функции) и <strong>нелокальные</strong>(внутри двух вложенных друг в друга функций).</li>
88 <li>У переменных в Python<strong>нет ограничения по размеру</strong> - они могут быть настолько большими, насколько хватит памяти устройства.</li>
88 <li>У переменных в Python<strong>нет ограничения по размеру</strong> - они могут быть настолько большими, насколько хватит памяти устройства.</li>
89 <li>Их можно импортировать из других файлов, удалять, проверять их существование в текущей области видимости, печатать в форматированной строке.</li>
89 <li>Их можно импортировать из других файлов, удалять, проверять их существование в текущей области видимости, печатать в форматированной строке.</li>
90 </ul><p>Python для всех</p>
90 </ul><p>Python для всех</p>
91 <p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
91 <p>Вы освоите Python на практике и создадите проекты для портфолио - телеграм-бот, веб-парсер и сайт с нуля. А ещё получите готовый план выхода на удалёнку и фриланс. Спикер - руководитель отдела разработки в "Сбере".</p>
92 <p><a>Пройти бесплатно</a></p>
92 <p><a>Пройти бесплатно</a></p>
93 <a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>
93 <a><b>Бесплатный курс по разработке на Python ➞</b>Пройдите бесплатный курс по Python и создайте с нуля телеграм-бот, веб-парсер и сайт. Спикер - руководитель отдела разработки в "Сбере". Пройти курс</a>