Файл: Книга на вашем родном языке 6 2 Переводы 7 1 Доступные переводы переводы 7 3 Предисловие 16.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 227
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
A Byte of Python (Russian), Версия 2.02
укажете в скобках, будет выведено на экран. В данном примере мы указали 'Привет, Мир!'
6.3.1 Исполнимые программы на Python
Это касается только пользователей GNU/Linux и Unix, но пользователям Windows тоже будет полезно об этом знать.
Каждый раз, когда нам нужно запустить программу на Python, нам приходится в явном виде запускать python3 foo.py
. Но почему бы нам не запускать её точно так же, как и все другие программы? Этого можно достичь при помощи так называемого hashbang.
Добавьте строку, указанную ниже, в самое начало вашей программы:
6.3. Использование программных файлов
32
A Byte of Python (Russian), Версия 2.02
#!/usr/bin/env python3
Теперь ваша программа должна выглядеть так:
#!/usr/bin/env python3
(
'Привет, Мир!'
)
Теперь необходимо установить программе атрибут исполнимости, используя команду
chmod, а затем выполнить программу.
Команда chmod здесь используется для изменения режима файла
3
добавлением атрибута исполнимости для всех пользователей в системе
4
$ chmod a+x helloworld.py
После этого мы можем запускать программу напрямую, потому что наша операционная система запустит
/usr/bin/env
, который, в свою очередь, найдёт Python 3, а значит, смо- жет запустить наш файл.
$ ./helloworld.py
Привет, Мир!
Здесь «
./
» обозначает, что программа находится в текущем каталоге.
Ради интереса можете даже переименовать файл в просто «
helloworld
» и запустить его как
./helloworld
, и это также сработает, поскольку система знает, что запускать про- грамму нужно интерпретатором, положение которого указано в первой строке файла про- граммы.
Но до сих пор мы могли выполнять свою программу только если знали полный путь к ней. А что, если нам нужно запускать эту программу из любого каталога? Это можно организовать, расположив свою программу в одном из каталогов, перечисленных в пере- менной окружения
PATH
При попытке запуска какой-либо программы система ищет её в каталогах, перечислен- ных в переменной окружения
PATH
, и запускает. Таким образом, мы можем сделать про- грамму доступной из любого места, скопировав её в один из каталогов, перечисленных в
PATH
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/swaroop/bin
$ cp helloworld.py /home/swaroop/bin/helloworld
$ helloworld
Привет, Мир!
3
1 2 3 4 5 6 7 8 9 ... 14
change mode – англ. «изменить режим» (прим. перев.)
4
В указанной команде буква «a» взята из слова «all» (англ. «все»), а буква «x» – из слова «execute» (англ.
«исполнять») – прим. перев.
6.3. Использование программных файлов
33
A Byte of Python (Russian), Версия 2.02
Мы можем вывести на экран значение переменной
PATH
при помощи команды echo
,
добавив перед именем переменной символ
$
, чтобы указать оболочке, что мы хотим по- лучить значение этой переменной. Мы видим, что
/home/swaroop/bin
– один из ка- талогов в переменной PATH, где swaroop – это имя пользователя, которое я использую в своей системе. В вашей системе, скорее всего, будет аналогичный каталог для вашего пользователя.
Вы также можете добавить какой-либо каталог к переменной
PATH
– это можно сделать,
выполнив
PATH=$PATH:/home/swaroop/mydir
, где '/home/swaroop/mydir'
– это ка- талог, который я хочу добавить к переменной
PATH
Этот метод полезен для написания сценариев, которые будут доступны для запуска в лю- бой момент из любого места. По сути, это равносильно созданию собственных команд, как cd или любой другой, которые часто используются в терминале GNU/Linux или пригла- шении DOS.
Примечание: Когда речь идёт о Python, слова «программа» или «сценарий (скрипт)»
обозначают одно и то же.
6.4 Получение помощи
Для быстрого получения информации о любой функции или операторе Python служит встроенная функция help
. Это особенно удобно при использовании командной строки интерпретатора. К примеру, выполните help(print)
– это покажет справку по функции print
, которая используется для вывода на экран.
Примечание: Для выхода из справки нажмите q
Аналогичным образом можно получить информацию почти о чём угодно в Python. При помощи функции help()
можно даже получить описание самой функции help
!
Если вас интересует информация об операторах, как например,
return
, их необходимо указывать в кавычках (например,
help('return')
), чтобы Python понял, чего мы хотим.
6.4. Получение помощи
34
A Byte of Python (Russian), Версия 2.02 6.5 Резюме
Теперь вы умеете с лёгкостью писать, сохранять и запускать программы на Python.
И поскольку сейчас вы уже используете Python, давайте узнаем больше о его основных принципах.
6.5. Резюме
35
Основы
Просто напечатать «Привет, Мир!» недостаточно, верно? Вы хотите сделать больше – вы хотите ввести что-то в программу, обработать и получить нечто на выходе. В Python это можно организовать при помощи констант и переменных, а также некоторыми другими способами, которые будут рассмотрены в этой главе.
7.1 Комментарии
Комментарии – это то, что пишется после символа
#
, и представляет интерес лишь как заметка для читающего программу.
Например:
(
'Привет, Мир!) # print -- это функция или:
# print -- это функция
(
'Привет, Мир!)
Старайтесь в своих программах писать как можно больше полезных комментариев, объ- ясняющих:
• предположения;
• важные решения;
• важные детали;
• проблемы, которые вы пытаетесь решить;
• проблемы, которых вы пытаетесь избежать и т.д.
Текст программы говорит о том, КАК, а комментарии должны объяснять, ПОЧЕМУ
Это будет полезно для тех, кто будет читать вашу программу, так как им легче будет по- нять, что программа делает. Помните, что таким человеком можете оказаться вы сами через полгода!
36
A Byte of Python (Russian), Версия 2.02 7.2 Литеральные константы
Примером литеральной константы может быть число, например,
5
,
1.23
,
9.25e-3
или что-нибудь вроде 'Это строка'
или "It's a string!"
. Они называются литеральны- ми, потому что они «буквальны»
1
– вы используете их значение буквально. Число
2
все- гда представляет само себя и ничего другого – это «константа», потому что её значение нельзя изменить. Поэтому всё это называется литеральными константами.
7.3 Числа
Числа в Python бывают трёх типов: целые, с плавающей точкой и комплексные.
• Примером целого числа может служить
2
• Примерами чисел с плавающей точкой (или «плавающих» для краткости) могут быть
3.23
и
52.3E-4
. Обозначение
E
показывает степени числа 10. В данном случае
52.3E-4
означает 52.3 * 10
-4
• Примеры комплексных чисел:
(-5+4j)
и
(2.3 - 4.6j)
Замечание для опытных программистов
Нет отдельного типа „long int“ (длинное целое). Целые числа по умолчанию могут быть произвольной длины.
7.4 Строки
Строка – это последовательность символов. Чаще всего строки – это просто некоторые наборы слов.
Слова могут быть как на английском языке, так и на любом другом, поддерживаемом стандартом Unicode, что означает почти на любом языке мира
Замечание для опытных программистов
В Python 3 нет ASCII-строк, потому что Unicode является надмножеством (включает в се- бя) ASCII. Если необходимо получить строку строго в кодировке ASCII, используйте str.
encode("ascii")
. Подробнее смотрите в обсуждении этого вопроса на StackOverflow
. По умолчанию все строки в Unicode.
1
«literal» – англ. «буквальный»; вспомните «литера» (син. «буква»). (прим. перев.)
7.2. Литеральные константы
37
A Byte of Python (Russian), Версия 2.02
Я могу с уверенностью сказать, что вы будете использовать строки почти в каждой вашей программе на Python. Поэтому уделите внимание тому, как работать со строками в Python.
7.4.1 Одинарные кавычки
Строку можно указать, используя одинарные кавычки, как например,
'Фраза в кавычках'
. Все пробелы и знаки табуляции сохранятся, как есть.
7.4.2 Двойные кавычки
Строки в двойных кавычках работают точно так же, как и в одинарных. Например,
"What's your name?"
7.4.3 Тройные кавычки
Можно указывать «многострочные» строки с использованием тройных кавычек (
"""
или '''
). В пределах тройных кавычек можно свободно использовать одинарные и двойные кавычки. Например:
'''Это многострочная строка. Это её первая строка.
Это её вторая строка.
"What's your name?", - спросил я.
Он ответил: "Bond, James Bond."
'''
7.4.4 Строки неизменяемы
Это означает, что после создания строки её больше нельзя изменять. На первый взгляд это может показаться недостатком, но на самом деле это не так. Впоследствии на примере разных программ мы увидим, почему это не является ограничением.
7.4.5 Объединение строковых констант
Если расположить рядом две строковых константы, Python автоматически их объединит.
Например,
'What\'s ' 'your name?'
автоматически преобразуется в "What's your name?"
7.4. Строки
38
A Byte of Python (Russian), Версия 2.02
Замечание для программистов на C/C++
В Python нет отдельного типа данных char
(символ). В нём нет нужды, и я уверен, что вы не будете по нему скучать.
Замечание для программистов на Perl/PHP
Помните, что строки в двойных кавычках и в одинарных эквивалентны, и ничем друг от друга не отличаются.
7.4.6 Метод format
Иногда бывает нужно составить строку на основе каких-либо данных. Вот здесь-то и при- гождается метод format()
Сохраните следующие строки в файл str_format.py
:
age
=
26
name
=
'Swaroop'
(
'Возраст
{0}
--
{1}
лет.'
format(name, age))
(
'Почему
{0}
забавляется с этим Python?'
format(name))
Вывод:
$ python str_format.py
Возраст Swaroop -- 26 лет.
Почему Swaroop забавляется с этим Python?
Как это работает:
В строку могут быть включены определённые обозначения, а впоследствии может быть вызван метод format для замещения этих обозначений соответ- ствующими аргументами.
Взгляните на первый случай применения обозначений, где мы пишем
{0}
, и это соответствует переменной name
, являющейся первым аргументом метода format
. Аналогично, второе обозначение
{1}
соответствует переменной age
,
являющейся вторым аргументом метода format
. Заметьте, что Python начи- нает отсчёт с 0, поэтому первая позиция – номер 0, вторая – номер 1 и т.д.
Заметьте, мы ведь могли добиться того же самого результата и объединени- ем строк:
'Возраст' + name + ' -- ' + str(age) + ' лет.'
, однако вы сами видите, как это некрасиво, и как легко в таком случае допустить ошибку.
7.4. Строки
39
A Byte of Python (Russian), Версия 2.02
Во-вторых, преобразование в строку делается методом format автоматически,
в отличие от явного преобразования в нашем примере. В-третьих, используя метод format
, мы можем изменить сообщение, не затрагивая используемых переменных, и наоборот.
На всякий случай имейте в виду, что цифры здесь не обязательны. Можно было бы просто написать:
age
=
26
name
=
'Swaroop'
(
'Возраст
{}
--
{}
лет.'
format(name, age))
(
'Почему
{}
забавляется с этим Python?'
format(name))
и получить такой же результат, как и ранее.
В методе format
Python помещает значение каждого аргумента в обозначенное место.
Могут быть и более детальные обозначения, как то:
>>>
# десятичное число (.) с точностью в 3 знака для плавающих:
>>>
'
{0:.3}
'
format(
1
/
3
)
'0.333'
>>>
# заполнить подчёркиваниями (_) с центровкой текста (^) по ширине 11:
>>>
'
{0:_^11}
'
format(
'hello'
)
'___hello___'
>>>
# по ключевым словам:
>>>
'
{name}
написал
{book}
'
format(name
=
'Swaroop'
, book
=
'A Byte of Python'
)
'Swaroop написал A Byte of Python'
Детально такие обозначения форматов описаны в Предложении по расширению Python
PEP 3101
7.5 Переменные
Использование одних лишь литеральных констант может скоро наскучить – нам ведь нужен способ хранения любой информации и манипулирования ею. Вот здесь на сце- ну выходят переменные. Слово «переменные» говорит само за себя – их значение может меняться, а значит, вы можете хранить в переменной всё, что угодно. Переменные – это просто области памяти компьютера, в которых вы храните некоторую информацию. В
отличие от констант, к такой информации нужно каким-то образом получать доступ, по- этому переменным даются имена.
7.5. Переменные
40
A Byte of Python (Russian), Версия 2.02 7.6 Имена идентификаторов
Переменные – это частный случай идентификаторов. Идентификаторы – это имена, при- своенные чему-то для его обозначения. При выборе имён для идентификаторов необхо- димо соблюдать следующие правила:
• Первым символом идентификатора должна быть буква из алфавита (символ ASCII в верхнем или нижнем регистре, или символ Unicode), а также символ подчёркивания
(«_»).
• Остальная часть идентификатора может состоять из букв (символы ASCII в верхнем или нижнем регистре, а также символы Unicode), знаков подчёркивания («_») или цифр (0-9).
• Имена идентификаторов чувствительны к регистру. Например,
myname и
myName
–
это не одно и то же. Обратите внимание на «
n
» в нижнем регистре в первом случае и «
N
» в верхнем во втором.
• Примеры допустимых имён идентификаторов:
i
,
__my_name
,
name_23
,
a1b2_c3
и любые_символы_utf8_δξѪђёўЩӆΞέά
• Примеры недопустимых имён идентификаторов:
2things
,
здесь есть пробелы
,
my-name
,
>a1b2_c3
и "это_в_кавычках"
7.7 Типы данных
Переменные могут хранить значения разных типов, называемых типами данных. Ос- новными типами являются числа и строки, о которых мы уже говорили. В дальнейших главах мы увидим, как создавать свои собственные типы при помощи
классов
7.8 Объекты
Помните, Python рассматривает всё, что есть в программе, как объекты. Имеется в виду, в самом общем смысле. Вместо того, чтобы говорить «нечто», мы говорим «объект».
Замечание для программистов в объектно-ориентированном стиле
Python строго объектно ориентирован в том смысле, что объектом является всё, включая числа, строки и функции.
Сейчас мы увидим, как использовать переменные наряду с константами. Сохраните сле- дующий пример и запустите программу.
7.6. Имена идентификаторов
41
A Byte of Python (Russian), Версия 2.02
Как писать программы на Python
Впредь стандартная процедура сохранения и запуска программы на Python будет выгля- деть так:
1. Откройте ваш любимый редактор, например Komodo Edit.
2. Введите текст программы из примера.
3. Сохраните его в файл, указав его имя в комментарии. Я следую правилу сохранять все программы на Python с расширением
.py
4. Запустите интерпретатор командой python3 program.py
. Кроме того, вы можете сделать программу
исполнимой
, как объяснялось ранее.
7.8.1 Пример: Использование переменных и констант
# Имя файла : var.py
i
=
5
(i)
i
=
i
+
1
(i)
s
=
'''Это многострочная строка.
Это вторая её строчка.'''
(s)
Вывод:
$ python var.py
5 6
Это многострочная строка.
Это вторая её строчка.
Как это работает:
Вот как эта программа работает. Сперва мы присваиваем значение констан- ты
5
переменной i
, используя оператор присваивания (
=
). Эта строка назы- вается предложением и указывает, что должно быть произведено некоторое действие, и в данном случае мы связываем имя переменной i
со значением
5
. Затем мы печатаем значение i
, используя функцию print
, которая просто печатает значение переменной на экране.
7.8. Объекты
42