Вы находитесь на странице: 1из 28

Programming

Languages

Лабораторная работа #02


Базовый синтаксис языка Python 3.
Переменные и литералы.
Строки и форматирование.
Простейший ввод-вывод

LEARN. GROW. SUCCED.


® 2020-2021. Department: <Software of Information Systems and Technologies>
Faculty of Information Technology and Robotics
Belarusian National Technical University
by Viktor Ivanchenko / ivanvikvik@bntu.by / Minsk
Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

ЛАБОРАТОРНАЯ РАБОТА #02


Базовый синтаксис языка Python 3.
Переменные и литералы. Строки и фор-
матирование. Простейший ввод-вывод
Цель работы
Ознакомиться с базовым синтаксисом языка Python 3, с объявлением и исполь-
зованием переменных и литералов, с самым востребованным типом данных в
языках программирования – строковым типом и их форматированием, а также
научиться использоваться простейшие стандартные функции консольного
ввода-вывода языка Python 3 для написания интерактивных программ.

Основное задание
Написать интерактивную программу, которая будет запрашивать соответству-
ющие данные о студенте (Ф.И.О., дата рождения, адрес (можно только город),
любимый род деятельности, любимое блюдо, любимый фильм и т.д.), а затем
выводить их в табличном виде на экран монитора c использованием разнооб-
разных средств форматирования, которые предоставляет язык Python.

Для формирования таблицы можно воспользоваться выводом символов таб-


лицы ASCII-кодов с помощью escape-последовательностей, но не обязательно.
Вам даётся полный полёт фантазий.

Можно дополнительно сделать так, чтобы программа могла здороваться с


пользователем и на основании ведённых данных давать полезную или беспо-
лезную аналитику (к примеру, «А не слишком Вы молоды для программиста?»
«Вам бы не мешало поправиться, есть пару советов на этот счёт…», «Зна-
ете ли Вы, что на Марсе Ваш вес составил бы …, а на Луне - …» и т.д.)

1 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Требования к выполнению
1) Программа должна обязательно быть снабжена комментариями на английском
языке, в которых необходимо указать краткое предназначение программы, её
версию, ФИО разработчика, номер группы и дату разработки.

2) Для вывода результирующих данных необходимо использовать современные


средства форматирования языка Python.

3) Интерфейс интерактивной программы должен быть англоязычным.

Best of LUCK with it, and remember to HAVE FUN while you’re learning :)
Victor Ivanchenko

2 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Что нужно запомнить (краткие тезисы)


1. Бизнес-код (бизнес-логика) – это основа доменной модели (предметной об-
ласти), для решение проблем которой и создаётся программа. Это централь-
ный и самый полезный код всего приложения. Или можно сказать так, часть
основного кода программы, определяющий алгоритм решения конкретных
задач бизнеса.
2. В языке Python, в отличии от других объектно-ориентированных языков про-
граммирования, можно сразу начинать писать бизнес-код не используя ника-
ких стартовых функций, методов, классов и т.д.
3. Чтобы в процессе выполнения программы можно было хранить начальные,
промежуточные и результирующие данные (значения) в языках программи-
рования используются так называемые переменные. Переменная является
основой любой современной программы.
4. В общем случае, переменная (variable) – поименованная область памяти, ко-
торую можно использовать для хранения данных и осуществления доступа к
ним. Данные, которые находятся в переменной (т.е. по данному адресу па-
мяти), называют значением (value) данной переменной.
5. Переменные упрощают написание кода программы, делают этот код чита-
бельным и легко поддерживаемым.
6. Объявление переменной – это определение её типа и имени.
7. Перед использование любой переменной её необходимо объявить, затем
инициализировать, а лишь потом только использовать. Обычно нельзя ис-
пользовать неинициализированную переменную – будет синтаксическая
ошибка при компилировании или интерпретировании кода.
8. Для установления соответствующего значения переменной используется са-
мый востребованный во всех языках программирования оператор присва-
ивания. В языке Python он обозначается символом ‘=’ («равно»).
9. С каждой переменной связаны две вещи: область видимости и время жизни.
10. Область видимости переменной – эта область, в которой можно обращаться
к данной переменной, т.е. область, где она видна.
11. Время жизни переменной – промежуток времени от выделения памяти под
переменную до освобождения памяти, занимаемой переменной.

3 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

12. В большинстве случаев выделяют объявление локальных и глобальных пере-


менных.
13. Локальная переменная – переменная, которая объявляется в любом вычис-
лительном блоке (функции, методе и т.д.). Локальная переменная имеет ло-
кальную область видимости (видимость предела вычислительного блока) и
локальное время жизни (создаётся при вызове вычислительного блока (функ-
ции, метода, …) и уничтожается при завершении выполнения вычислитель-
ного блока. Локальная переменная обычно создаётся в стеке (stack).
14. Глобальная переменная – переменная, которая объявлена вне вычислитель-
ного блока (функции, метода, …). Глобальная переменная видна/доступна по-
чти везде (т.е. в любом вычислительном блоке), если её не затемняет локаль-
ная переменная. Глобальная переменная создаётся сразу же при старте про-
граммы и уничтожается при завершении выполнения всей программы.
15. В имени переменной может быть любое количество символов. Первый сим-
вол должен быть либо буква, либо знак нижнего подчёркивания. В качестве
имени переменной запрещено также использовать ключевые (зарезервиро-
ванные) слово языка Python.
16. Список ключевых слов языка Python 3.X:

False await else import pass


None break except in raise
True class finally is return
and continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield
17. При именовании переменной необходимо учитывать, что язык Python чув-
ствительный к регистру, т.е. следующие идентификаторы name, Name и
NAME для языка Python буду различными именами.
18. Имя переменной может состоять из нескольких слов. В языках программи-
рования принято разделять слова нижним подчеркиванием (к примеру,
user_account или user_balance) или все слова, кроме первого, начинать с буквы
в верхнем регистре (к примеру, userAccount или userBalance). В языке Python
для именования любого идентификатора используют первое соглашение.

4 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

19. Для лучшей читабельности кода и его дальнейшего лёгкого сопровождения


имена переменным следует давать осмысленные, т.е. имя переменной
должно нести смысловую нагрузку (логический смысл), а не только быть ссыл-
кой на значение.
20. Литералом (literal) называется фиксированное значение, которое непосред-
ственно используется в исходном коде программы. В отличие от прочих эле-
ментов языка (констант, переменных), литералы не могут быть изменены в
тексте программы.
21. Большинство языков программирования содержат следующие элементарные
типы литерал: числовые (целочисленные и вещественные), символьные, стро-
ковые, логические и пустой-литерал (null-литерал). В языке Python дополни-
тельно есть и другие литералы: списки, кортежи, множества, словари, лите-
ралы комплексных чисел и мн. др.
22. В языке Python литерал – это простейший способ создать объект.
23. Строковые литералы в языке Python могут браться в одинарные, двойные
и тройные кавычки (более подробно о строках смотрите информацию ниже).
24. Символьных литералов в языке Python нет.
25. Пустой литерал в языке Python обозначается зарезервированным словом
None.
26. Логические литералы (литералы истинности) обозначаются двумя заре-
зервированными в языке Python словами: True и False.
27. С помощью встроенной стандартной функции help(…) можно в интерактив-
ном режиме узнать справочную информацию о компонентах языка Python и
его библиотеках.
28. С помощью встроенной стандартной функции print(…) можно осуществлять
вывод данных в указанный поток вывода системы. По умолчанию данная
функция выводит целевые данные в системную консоль.
29. С помощью встроенной стандартной функции input(…) можно осуществлять
ввод данных. По умолчанию данная функция вводит данные с системной кон-
соли и возвращает их в виде строки. В качестве параметра принимается также
строка, которая выводится перед вводом значений и служит пояснение того,
какие данные нужно вводить пользователю.
30. В настоящий момент в языке Python для форматирования строк можно ис-
пользовать следующие средства: оператор форматирования %, строковый
5 | We hope you enjoy working with Python!
Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

метод format и специальные строки форматирования, которые начинаются


со спецификатора f.
31. Для ознакомления со спецификацией форматирования строк в интерактив-
ном режиме в языке Python необходимо вести команду help(‘FORMATTING’).

6 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Начальные сведения о строках в языке Python 3


Объявление строки в Python
Для хранения и обработки текстовой информации используется строковый тип дан-
ных. Строковый тип данных – один из самых востребованных типов в мире програм-
мирования. В языке Python строки могут задаваться тремя способами:

1) строка в одинарных кавычках – строка, ограниченная парой кавычек (апо-


строфов):

str_1 = 'This is a string enclosed in single quotes'

2) строка в двойных кавычках – строка, ограниченная парой сдвоенных кавы-


чек:

str_2 = "This is the other string enclosed in double quotes"

3) строка в тройных кавычках – строка, ограниченная парой строенных кавычек


или апострофов:

str_3 = """The string enclosed in triple quotes"""


str_4 = '''… and another string enclosed in triple quotes'''

Более того, в отличии от двух первых типов задания строк, строка в тройных ка-
вычках может занимать в коде несколько строк и выводиться на экран
точно в таком же виде, как и вводится в исходном тексте программы!
very_long_str = """
This is a long string
that is made up of several lines
and they will show up that way
when displayed.
"""

Для того, чтобы отобразить на экране сами кавычки, в строке разрешается комби-
нировать кавычки любого типа:

str = 'I said: "Python is GREAT!!!" and began to do my lab work'

Однако нужно помнить, если в роли ограничителей у вас выступает пара кавычек,
то внутри ограниченной ими строки их использовать уже нельзя! Аналогично и
для всех остальных типов кавычек.

7 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Escape-последовательности
Для достижения большей мощи и гибкости в отображении текста на экране в строки
можно вставлять специальные escape-последовательности (escape-characters),
которые не отображаются на экране и всегда начинаются с символа правого слеша
('\'). Наиболее частые escape-последовательности приведены в таблице ниже:
Backslash Hexadecimal
Description (описание)
notation character
\t 0x09 tab (горизонтальный табулятора)
\v 0x0b vertical tab (вертикальный табулятор)
\s 0x20 space (пробел)
\b 0x08 backspace
\x character x (символ x)
\n 0x0a newline (новая строка)
\r 0x0d carriage return (возврат каретки)
\nnn octal notation, where n is the range 0…7 (восьмеричная нотация сим-
вола, где n может принимать значение из диапазона цифр от 0 до 7
включительно)
\xnn Hexadecimal notation, where n is in the range 0…9, a…f, A…F (шестна-
дцатеричная нотация символа, где n может принимать значение из
диапазона цифр от 0 до 9 включительно и букв a…f и A…F)
\a 0x07 bell or alert (вызов одинарного сигнала системного динамика)
\' apostrophes (вывод одинарной кавычки – апострофа)
\" double quotes (вывод двойной кавычки)
\\ slash (вывод правого слеша)

Raw-строки (сырые строки)


Если требуется вывести строку как есть, то есть в то виде, как вы её описали в коде,
без всевозможных преобразований символов escape-последовательностей, то до-
статочно перед написанием самой строки подставить префикс в виде символа 'r'
(raw – запись/строка). Данный тип строки не преобразует (treat) слеши и следующие
за ним символы (т.е. подавляет экранирование). Сравните результат вывода строк с
использованием функции вывода print и raw-строк:

Рисунок 1 – Исходный код программы, которая


тестирует простые и raw-строки

8 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Рисунок 2 – Результат работы вышеописанной тестовой программы

Кодирование символов в Python и таблицы-кодировок


Любой текст состоит из строк, а те в свою очередь состоят из символов. Символ –
это некоторый значок, изображение. Один и тот же символ можно записать по-раз-
ному, например, два человека по-разному напишут от руки букву “A”, и даже в ком-
пьютерном представлении одна и та же буква будет выглядеть по-разному, если ее
отображать разными шрифтами, при этом это будет все равно один и тот же символ.
Верно и другое: разные символы могут быть записаны одинаково, например, вот две
разные буквы, одна – латинского алфавита, другая – русского: “A” и “А”. Несмотря на
то, что они выглядят одинаково, удобней считать их разными символами.

Итак, способ хранения текстовой информации в компьютере не связан напрямую с


изображением этого текста. Вместо символов хранятся их номера – числовые коды,
а вот то, как выглядит символ с данным числовым кодом на экране напрямую
зависит от того, какой используется шрифт для отображения символов.

Вначале под кодирование одного символа отводился один байт, то есть 8 бит
информации. Таким образом можно было закодировать 256 различных значений,
то есть в записи текста можно использовать 256 различных символов. Этого доста-
точно, чтобы отобразить все символы латинского алфавита, цифры, знаки препина-
ния и некоторые другие символы. Стандарт, указывающий, какие числовые коды со-
ответствуют каким основным символам, называется ASCII. В таблицу ASCII включены
символы с кодами от 0 до 127, то есть ASCII - это семибитный код. Вот так выглядит
таблица ASCII:
Char Dec Oct Hex | Char Dec Oct Hex | Char Dec Oct Hex | Char Dec Oct Hex
-------------------------------------------------------------------------------------
(nul) 0 0000 0x00 | (sp) 32 0040 0x20 | @ 64 0100 0x40 | ` 96 0140 0x60
(soh) 1 0001 0x01 | ! 33 0041 0x21 | A 65 0101 0x41 | a 97 0141 0x61
(stx) 2 0002 0x02 | " 34 0042 0x22 | B 66 0102 0x42 | b 98 0142 0x62
(etx) 3 0003 0x03 | # 35 0043 0x23 | C 67 0103 0x43 | c 99 0143 0x63
(eot) 4 0004 0x04 | $ 36 0044 0x24 | D 68 0104 0x44 | d 100 0144 0x64

9 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

(enq) 5 0005 0x05 | % 37 0045 0x25 | E 69 0105 0x45 | e 101 0145 0x65
(ack) 6 0006 0x06 | & 38 0046 0x26 | F 70 0106 0x46 | f 102 0146 0x66
(bel) 7 0007 0x07 | ' 39 0047 0x27 | G 71 0107 0x47 | g 103 0147 0x67
(bs) 8 0010 0x08 | ( 40 0050 0x28 | H 72 0110 0x48 | h 104 0150 0x68
(ht) 9 0011 0x09 | ) 41 0051 0x29 | I 73 0111 0x49 | i 105 0151 0x69
(nl) 10 0012 0x0a | * 42 0052 0x2a | J 74 0112 0x4a | j 106 0152 0x6a
(vt) 11 0013 0x0b | + 43 0053 0x2b | K 75 0113 0x4b | k 107 0153 0x6b
(np) 12 0014 0x0c | , 44 0054 0x2c | L 76 0114 0x4c | l 108 0154 0x6c
(cr) 13 0015 0x0d | - 45 0055 0x2d | M 77 0115 0x4d | m 109 0155 0x6d
(so) 14 0016 0x0e | . 46 0056 0x2e | N 78 0116 0x4e | n 110 0156 0x6e
(si) 15 0017 0x0f | / 47 0057 0x2f | O 79 0117 0x4f | o 111 0157 0x6f
(dle) 16 0020 0x10 | 0 48 0060 0x30 | P 80 0120 0x50 | p 112 0160 0x70
(dc1) 17 0021 0x11 | 1 49 0061 0x31 | Q 81 0121 0x51 | q 113 0161 0x71
(dc2) 18 0022 0x12 | 2 50 0062 0x32 | R 82 0122 0x52 | r 114 0162 0x72
(dc3) 19 0023 0x13 | 3 51 0063 0x33 | S 83 0123 0x53 | s 115 0163 0x73
(dc4) 20 0024 0x14 | 4 52 0064 0x34 | T 84 0124 0x54 | t 116 0164 0x74
(nak) 21 0025 0x15 | 5 53 0065 0x35 | U 85 0125 0x55 | u 117 0165 0x75
(syn) 22 0026 0x16 | 6 54 0066 0x36 | V 86 0126 0x56 | v 118 0166 0x76
(etb) 23 0027 0x17 | 7 55 0067 0x37 | W 87 0127 0x57 | w 119 0167 0x77
(can) 24 0030 0x18 | 8 56 0070 0x38 | X 88 0130 0x58 | x 120 0170 0x78
(em) 25 0031 0x19 | 9 57 0071 0x39 | Y 89 0131 0x59 | y 121 0171 0x79
(sub) 26 0032 0x1a | : 58 0072 0x3a | Z 90 0132 0x5a | z 122 0172 0x7a
(esc) 27 0033 0x1b | ; 59 0073 0x3b | [ 91 0133 0x5b | { 123 0173 0x7b
(fs) 28 0034 0x1c | < 60 0074 0x3c | \ 92 0134 0x5c | | 124 0174 0x7c
(gs) 29 0035 0x1d | = 61 0075 0x3d | ] 93 0135 0x5d | } 125 0175 0x7d
(rs) 30 0036 0x1e | > 62 0076 0x3e | ^ 94 0136 0x5e | ~ 126 0176 0x7e
(us) 31 0037 0x1f | ? 63 0077 0x3f | _ 95 0137 0x5f | (del) 127 0177 0x7f

Шло время, все были счастливы, а кто не был счастлив (читай – кому не хватало знака
"©" или родной буквы «щ») – использовали оставшиеся 128 знаков на свое усмот-
рение, то есть создавали новые кодировки. Так появились кодировки для кириллицы
cp1251 и KOI8. Вместе с ними появилась и проблема интерпретации байтов типа
0b1******* (то есть символов\чисел от 128 и до 255) – например, 0b11011111 в коди-
ровке cp1251 это наша родная «Я», в тоже время в кодировке ISO-8859-1 это грече-
ская немецкая Eszett ("ß"). Ожидаемо, сетевая коммуникация и просто обмен фай-
лами между разными компьютерами превратились в ужас.

Чуть позже собрались светлые умы и предложили новый стандарт – Unicode. Это
именно стандарт, а не кодировка – сам по себе Unicode не определяет, как символы
будут сохранятся на жестком диске или передаваться по сети. Он лишь определяет
связь между символом и некоторым числом, а формат, согласно с которым эти числа
будут превращаться в байты, определяется Unicode-кодировками (например, UTF-8
или UTF-16). По умолчанию в Unicode-кодировке один символ кодируется 2 бай-
тами.

На данный момент в Unicode-стандарте есть немного более 100 тысяч символов, то-
гда как UTF-16 позволяет поддерживать более одного миллиона.

10 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

По умолчанию все строки в Python 2 кодируются с использованием ASCII-


кодировки, т.е. все строки фактически состоят из наборов байт, и для того, чтобы
строку представить в виде Unicode-кодировки к строке необходимо добавлять пре-
фикс в виде символа 'u' перед строкой:

unicode_str = u'Use this unicode string only in Python 2'

А вот в Python 3 все строки представляются в Unicode-кодировке!

11 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Основы ввода-вывода в языке Python 3


Использование функции-справки help(…)
Для того, чтобы узнать быстро синтаксис и/или справочную информацию о любой
стандартной функции Python, которую вы используете при написании программ-
ного кода, необходимо в интерактивном режиме среды IDLE вести функцию help(…)
и в качестве параметра передать ей имя целевой функции (см. рис. 3).

Рисунок 3 – Вывод синтаксиса и справочной информации


функции print(…) c использованием функции help(…)

Если же просто ввести функцию без параметров, то будет осуществлён вход в спра-
вочный режим работы IDLE, где затем для получения справки можно просто вводить
имя целевой функции (см. рис. 4). Для выхода из данного режима необходимо вве-
сти букву 'q' и нажать клавишу «Enter».

12 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Рисунок 4 – Вывод синтаксиса и справочной информации


функции input(…) в справочном режиме работы IDLE

Функция для вывода информации на дисплей print(…)


Стандартная функция print(…) – это базовая функция для организации вывода од-
ного значения (см. рис. 5) или нескольких значений (см. рис. 6) по умолчанию на
консоль (для этого используется модуль sys.stdout) или в любой другой указанный
поток (stream).

print("This is one string parameter")

Рисунок 5 – Функции print(…) принимает один параметр в виде строки

print(5,"*",5,"=",25)

Рисунок 6 – Функции print(…) принимает несколько параметров

13 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Дополнительные интересные для нас параметры функции print(…):

 sep: (от англ. слова separator – разделитель) строка или символ, который встав-
ляется между значениями функции (по умолчанию – это пробел);

 end: строка, которая подставляется после последнего выводимого функцией


значения (по умолчанию – эта символ новой строки).

Рисунок 7 – Использование дополнительных параметров функции print(…)


и результат её выполнения

Обратите внимание, что дополнительные параметры должны идти самыми


последними!

Функция для ввода данных с клавиатуры input(…)


Стандартная функция input(…) – это базовая функция для организации ввода поль-
зователем данных. Синтаксис функции представлен на рисунке 4. В качестве необя-
зательного параметра она принимает строку-приглашения, а возвращает строку
данных, которую ввёл пользователь в консоли.

Что нужно помнить при использовании функции input(…):

 строка-приглашения не начинается и не заканчивается с символа новой


строки. Следовательно, для организации удобного запроса на ввод соответ-
ствующих данных пользователь сам должен заблаговременно об этом поза-
ботиться;

 данную функцию очень часто используют для того, чтобы организовать паузу
перед закрытием программы для просмотра результата её выполнения (см.
рис. 8 и 9).

answer = input("Computer: Hi! How are you?\nYou: ")


print("Computer: I am " + answer + " too :))" )

input("\nPress Enter for exit...")

Рисунок 8 – Тестируем input(…)

14 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Рисунок 9 – Результат работы связки


функций print(…) и input(…) при орга-
низации диалога между пользователем
и компьютерной программой

15 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Форматирования строк в языке Python 3


Использование оператора форматирования %
Оператор форматирования % - это один из самых простых и старых способов
форматирования в языке Python, который перекочевал в язык Python из языка С
(вспомните форматный вывод на консоль с помощью С-функции printf).

Пример кода, где необходимо в шаблонную строку вставить только один параметр:

Разберём подробно синтаксис данной строчки кода:

Целевая шаб- Оператор фор- Вставляемые в шаб-


лонная строка матирования лонную строку данные

Знак % и смежная буква в строке обозначают место, куда будет подставлен пе-
редаваемый параметр определённого типа данных (буква s обозначает строку)

Несколько однотипных примеров, где необходимо в шаблонную строку вставить не-


сколько параметров целого (в том числе и символов) и вещественного типов:

16 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Разберём подробно синтаксис первой строчки кода:

Целевая шаблонная строка Оператор форматирования Передаваемые данные

Знаки % и смежные буквы в строке обозначают места, куда будут подставлены переда-
ваемые параметры целевого типа данных (буква d обозначает десятичное целое число)

Более подробную информацию о данном способе форматирования можно прочи-


тать в Python Docs или по адресу: https://docs.python.org/3/library/stdtypes.html#old-
string-formatting.

Использование метода format (новый стиль языка Python 3.X+)


Т.к. строка в языке Python является объектом (собственно, как и всё в данном языке),
то у данного объекта есть уже встроенный функционал, которым можно
пользоваться для решения соответствующих задач. В частности, у строки есть
встроенный метод format, который позволяет создать шаблонную строку и вставить
в неё данные, которые будут определены во время выполнения программы.

Пример кода, где необходимо в шаблонную строку вставить только один параметр:

Разберём подробно синтаксис данной строчки кода:

Целевая шаб- Фигурные скобки в строке обозначают место,


лонная строка где будет подставлен передаваемый параметр

Точечная нотация используется для об- Название Передаваемый


ращения к соответствующему методу метода параметр методу

17 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Несколько однотипных примеров, где необходимо в шаблонную строку вставить не-


сколько параметров:

Разберём подробно синтаксис последней строчки кода:

Целевая шаблон- Номер в фигурных скобках обозначает порядковый номер


ная строка параметра, который будет вставлен в данном месте строки

Точечная нотация используется для об- Название Передаваемые пара-


ращения к соответствующему методу метода метры методу

Также вместо порядковых номеров параметров в шаблонной строке можно указы-


вать их имена, которые задаются в методе format во время передачи значений:

Общий синтаксис форматной строки и вызова метода format представлен ниже:

18 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Выравнивание внутри шаблонной строки производится при помощи символа-за-


полнителя. Доступны следующие варианты выравнивания:

Флаг Значение
символы-заполнители будут справа (выравнивание объекта по левому краю)
'<'
(по умолчанию)
'>' выравнивание объекта по правому краю
'=' заполнитель будет после знака, но перед цифрами (работает только с числовыми типами)
'^' выравнивание по центру

Опция "знак" используется только для чисел и может принимать следующие значе-
ния:

Флаг Значение
'+' знак должен быть использован для всех чисел
'-' '-' для отрицательных, ничего для положительных
'Пробел' '-' для отрицательных, пробел для положительных

Поле "тип" может принимать следующие значения:

Тип Значение
'd', 'i', 'u' десятичное число
'o' число в восьмеричной системе счисления
'x' число в шестнадцатеричной системе счисления (буквы в нижнем регистре)
'X' число в шестнадцатеричной системе счисления (буквы в верхнем регистре)
'e' число с плавающей точкой с экспонентой (экспонента в нижнем регистре)
'E' число с плавающей точкой с экспонентой (экспонента в верхнем регистре)
'f', 'F' число с плавающей точкой (обычный формат)
число с плавающей точкой. с экспонентой (экспонента в нижнем регистре), если она
'g'
меньше, чем -4 или точности, иначе обычный формат
число с плавающей точкой. с экспонентой (экспонента в верхнем регистре), если она
'G'
меньше, чем -4 или точности, иначе обычный формат
'c' символ (строка из одного символа или число - код символа)
's' строка
'%' число умножается на 100, отображается число с плавающей точкой, а за ним знак %

Более подробную информацию о современном стиле форматирования можно про-


читать в документации по языку Python или пройти по ссылке: https://docs.
python.org/3/library/string.html#string-formatting.
19 | We hope you enjoy working with Python!
Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Использование интерполяции строк (f-строки) - Python 3.6+


В языке Python 3.6 был добавлен новый подход к форматированию строк, который
назвали форматированные строчные литералы, или “f-строки”. Этот новый способ
форматирования строк позволяет вам использовать встроенные выражения Python
внутрь строковых констант.

Пример кода, где необходимо в шаблонную строку вставить только один параметр:

Разберём подробно синтаксис данной строчки кода:

Показатель фор- Фигурные скобки в строке обозначают место,


матной строки где будет подставлено значение переменной

Целевая строка-форматирования Название переменной

Ещё один пример, где уже выводятся с помощью f-строк несколько переменных:

Разберём подробно синтаксис третьей строчки кода:

Форматированный Фигурные скобки в строке обозначают место, где необхо-


строчный литерал димо указать значение переменной или выражения

Модификатор строчного литерала Переменные

20 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Пример написания программы в среде разра-


ботке JetBrains PyCharm Community Edition
Этот раздел посвящается тем, кому по каким-либо причинам не нравиться нативная
среда разработки Python IDLE, или тем, кто стремиться овладеть более мощными
средствами разработки программ на Python и увеличить свою производительность.

Здесь и далее буду приводиться примеры под ОС Windows 7.

После загрузки с Web-ресурса www.jetbrains.com/pycharm и установки интерпрета-


тора Python и среды разработки JetBrains PyCharm Community Edition для её запуска
щёлкаем мышкой на соответствующем ярлыке на рабочем столе (см. рис. 10) или
выбираем запуск данной среды из меню «Пуск» (см. рис. 11).

21 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Рисунок 11 – Выбор
среды разработки
Рисунок 10 – Ярлык среды разработки PyCharm из меню
PyCharm на любимом рабочем столе «Пуск»

22 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Чтобы написать и выполнить программу в среде разработке PyCharm необходимо


выполнить следующие шаги:

1) В появившемся стартовом окне (см. рис. 12) выбрать пункт «Create New
Project» (создание нового проекта).

Рисунок 12 – Стартовое
окно PyCharm

2) В поле «Location» (место расположение) выбрать место на диске, где будет


сохранён ваш проект и имя проекта (к примеру, Lab2Project), а в поле
«Interpreter» указать место расположения установленного интерпретатора
Python (см. рис. 13). Затем нажимаем кнопку «Create» (создать).
1

Рисунок 13 – Выбор местоположения будущего 3


проекта и установленного интерпретатора Python

3) В появившемся основном окне среды разработки (см. рис. 14) в левой па-
нели «Project» (проект) на проекте Lab2Project щёлкаем правой кнопкой
мыши и из контекстного меню выбираем NewPython File.

23 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Рисунок 14 – Создание файла-скрипта


в проекте Lab2Project

4) В появившемся диалоговом окне вводим имя файла-скрипта (к примеру,


sample.py) и нажимаем кнопку «ОК» (см. рис. 15).

Рисунок 15 –
Вводим название
файла-скрипта

5) Вводим в основном окне файла-скрипта исходный текст программы (см.


рис. 16).

24 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Рисунок 16 – Исходный код программы диалога

6) Для запуска программы можно использовать несколько способов:


a. из главного меню среды разработки выбираем Run  Run 'sample' (см.
рис. 17) или сочетанием горячих клавиш Shift + F10;
b. нажимаем зелёную стрелочку или в верхнем правом углу среды разра-
ботки, или внизу слева в окне просмотра результата интерпретации ис-
ходного кода программы (см. рис. 17);

Рисунок 17 – Запускаем код на выполнение

7) Результат выполнения программы будет выводится в собственное специ-


альное окно-выполнения Run внизу среды разработки (см. рис. 18).

25 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Кнопка для повторного


запуска программы

Рисунок 18 – Результат выполнения программы

Поздравляем! Вы ознакомились и научились писать программы с использованием


одной из мощных интегрированных сред разработки для языка Python – JetBrains
PyCharm Community Edition.

26 | We hope you enjoy working with Python!


Python Basic Syntax. Variables & Literals. String & Formatting. Python Simple Input-Output

Контрольные вопросы
1. Что обозначает термин «бизнес-логика»?
2. Что такое переменная и зачем она нужна программе?
3. Какие типы памяти доступны для программиста при разработке
программ?
4. Что такое литерал? Какие типы литералов есть в языке Python 3?
5. Как обозначаются строковые литералы в языке Python 3?

6. Какими способами можно отобразить строковую информацию в Python 3?


7. Какая есть особенность у строк, которые отображаются с использованием
тройных кавычек (или апострофов)?
8. Зачем нужны символы escape-последовательности?
9. Зачем нужны raw-строки (сырые строки) и как их записать в коде?

10. В каких случаях в языке Python 3 строковые литералы сопровождаются сим-


волами ‘r’, ‘u’, ‘f’ или ‘b’?

11. Какие существуют способы форматирования строк в языке Python?


12. Что такое таблица кодировок?

13. Что обозначает термин ASCII? Что обозначает термин Unicode?

14. Чем отличается ASCII-кодировка от Unicode-кодировки?

15. Если взять все существующие таблицы кодировки, то что у них будет одина-
ково?
16. Для кодирования символов какую кодировку использует язык Python третьей
версии?

17. Опишите синтаксис встроенной стандартной функции языка Python 3 для


вывода данных.
18. Опишите синтаксис встроенной стандартной функции языка Python 3 для
ввода данных.
19. С помощью какой функции в Python можно узнать подробную справочную
информацию о стандарте языка и его библиотеках?
20. Предположим, в вашем коде программы используется escape-
последовательность '\a' для создания звука с помощью системного динамике.
В каком случае при запуске программы на выполнение будет слышен звук?

27 | We hope you enjoy working with Python!