Python Базовый синтаксис
Python имеет много общего с такими языками, как Perl, C и Java. Однако есть и некоторые различия.
В этой главе мы изучим базовый синтаксис Python, чтобы помочь вам быстро освоить программирование на Python.
Первая программа на Python
Интерактивное программирование
Интерактивное программирование не требует создания файла сценария; код пишется в интерактивном режиме интерпретатора Python.
В Linux достаточно ввести команду Python в командной строке, чтобы запустить интерактивное программирование. Окно приглашения выглядит следующим образом:
Python 2.7.6 (по умолчанию, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] на darwin
Введите "help", "copyright", "credits" или "license" для получения дополнительной информации.
>>>
В Windows интерактивный клиент программирования устанавливается вместе с Python. Окно приглашения выглядит следующим образом:

Введите следующий текст в приглашении Python, затем нажмите Enter, чтобы увидеть результат:
>>> print ("Hello, Python!")
В Python 2.7.6 вывод приведённого выше примера выглядит следующим образом:
Hello, Python!
Скриптовое программирование
Запустите сценарий, вызвав интерпретатор с аргументом-сценарием; он выполняется до завершения сценария. После выполнения сценария интерпретатор завершает работу.
Давайте напишем простую программу на Python. Все файлы Python будут иметь расширение.pyв качестве расширения. Скопируйте следующий исходный код в файл test.py.
print ("Hello, Python!")
Здесь предполагается, что вы установили переменную PATH интерпретатора Python. Запустите программу с помощью следующей команды:
$ python test.py
Результат вывода:
Hello, Python!
Давайте попробуем другой способ выполнения скрипта Python. Измените файл test.py следующим образом:
Пример
print ("Hello, Python!")
Здесь предполагается, что ваш интерпретатор Python находится в каталоге /usr/bin. Используйте следующую команду для выполнения скрипта:
$ chmod +x test.py # 脚本文件添加可执行权限 $ ./test.py
Результат вывода:
Hello, Python!
Использование функции print из Python3.x в Python2.x
Если вы хотите использовать функцию print из Python3.x в версии Python2.x, вы можете импортировать пакет__future__, который отключает оператор print в Python2.x и использует функцию print Python3.x:
Пример
>>> print list # оператор print в python2.x
['a', 'b', 'c']
>>> from __future__ import print_function # импорт пакета __future__
>>> print list # Оператор print в Python2.x отключен; его использование вызывает ошибку
Файл "<stdin>", строка 1
print list
^
SyntaxError: неверный синтаксис
>>> print (list) # Используйте функцию print из Python3.x
['a', 'b', 'c']
>>>
Многие функции совместимости Python3.x и Python2.x могут быть__future__импортированы через этот пакет.
Идентификаторы Python
В Python идентификаторы состоят из букв, цифр и символов подчеркивания.
В Python все идентификаторы могут включать английские буквы, цифры и символы подчеркивания (_), но не могут начинаться с цифры.
Идентификаторы в Python регистрозависимы.
Идентификаторы, начинающиеся с подчеркивания, имеют особое значение. Те, что начинаются с одного подчеркивания_foo, представляют атрибуты класса, к которым нельзя обратиться напрямую и к которым нужно обращаться через интерфейс, предоставляемый классом; их нельзяfrom xxx import *.
Те, что начинаются с двойного подчеркивания__foo, представляют приватные члены класса. Те, что начинаются и заканчиваются двойным подчеркиванием__foo__, представляют идентификаторы, предназначенные для специальных методов в Python, таких как__init__()представляет конструктор класса.
Python может отображать несколько операторов в одной строке, используя точки с запятой;для их разделения, например:
>>> print ('hello');print ('example');
hello
example
Зарезервированные слова Python
В следующем списке показаны зарезервированные слова Python. Эти зарезервированные слова нельзя использовать в качестве констант, переменных или любых других имен идентификаторов.
Все ключевые слова Python содержат только строчные буквы.
| и | exec | not |
| assert | finally | или |
| break | for | pass |
| класс | from | |
| continue | global | raise |
| def | if | return |
| del | import | try |
| elif | in | while |
| else | является | with |
| except | lambda | yield |
Строки и отступы
Самое большое отличие изучения Python от других языков заключается в том, что блоки кода Python не используют фигурные скобки{}для управления классами, функциями и другими логическими проверками. Самая характерная особенность Python — использование отступов для написания модулей.
Количество пробельных символов в отступе может быть разным, но все операторы блока кода должны содержать одинаковое количество пробельных символов отступа. Это должно строго соблюдаться.
В следующем примере для отступа используются четыре пробела:
Пример
print ("True")
else:
print ("False")
Следующий код вызовет ошибку выполнения:
Пример
# -*- coding: UTF-8 -*-
# Имя файла: test.py
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
# При отсутствии строгого отступа во время выполнения будет выдана ошибка
print ("False")
После выполнения приведённого выше кода появится следующее сообщение об ошибке:
File "test.py", line 11
print ("False")
^
IndentationError: unindent does not match any outer indentation level
IndentationError: unindent does not match any outer indentation levelОшибка указывает на то, что вы использовали несогласованные отступы: где-то с отступом клавишей Tab, а где-то с отступом пробелами. Просто приведите их к единому виду.
Если этоIndentationError: unexpected indentошибка, компилятор Python сообщает вам: "Привет, дружище, в вашем файле проблема с форматированием; возможно, табуляции и пробелы не выровнены.", поэтому Python очень строго относится к форматированию.
Следовательно, в блоках кода Python необходимо использовать одинаковое количество ведущих пробелов отступа.
Рекомендуется использовать на каждом уровне отступаодну табуляциюилидва пробелаиличетыре пробела, и помните, что их нельзя смешивать.
Многострочные инструкции
В Python новая строка обычно используется как терминатор инструкции.
Однако мы можем использовать обратную косую черту (\), чтобы записать однострочную инструкцию на нескольких строках, следующим образом:
total = item_one + \
item_two + \
item_three
Если инструкция содержит скобки [], {}, или (), нет необходимости использовать многострочный соединитель. Пример:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
Кавычки в Python
В Python можно использовать одинарные кавычки ('), двойные кавычки (") и тройные кавычки ('''или""") для представления строк. Начало и конец кавычек должны быть одного типа.
Тройные кавычки могут состоять из нескольких строк — это быстрый синтаксис для написания многострочного текста, часто используемый для docstrings и рассматриваемый как комментарии в определённых местах файла.
word = 'word' sentence = "这是一个句子。" paragraph = """这是一个段落。 包含了多个语句"""
Комментарии в Python
В Python однострочные комментарии начинаются с#в начале.
Пример
# -*- coding: UTF-8 -*-
# Имя файла: test.py
# Первый комментарий
print ("Hello, Python!") # Второй комментарий
Результат вывода:
Hello, Python!
Комментарии могут располагаться в конце строки оператора или выражения:
name = "Example" # 这里的内容是一个注释
В Python многострочные комментарии используют три одинарные кавычки'''или три двойные кавычки"""。
Пример
# -*- coding: UTF-8 -*-
# Имя файла: test.py
'''
Это многострочный комментарий с использованием одинарных кавычек.
Это многострочный комментарий с использованием одинарных кавычек.
Это многострочный комментарий с использованием одинарных кавычек.
'''
"""
Это многострочный комментарий с использованием двойных кавычек.
Это многострочный комментарий с использованием двойных кавычек.
Это многострочный комментарий с использованием двойных кавычек.
"""
Пустые строки в Python
Пустые строки отделяют функции или методы класса, указывая на начало нового блока кода. Пустая строка также используется между классом и определением функции, чтобы выделить начало определения функции.
Пустые строки отличаются от отступов кода; пустые строки не являются частью синтаксиса Python. Если вы не вставляете пустые строки, интерпретатор Python не выдаст ошибку при запуске. Однако пустые строки служат для разделения двух разделов кода с разными функциями или назначением, что упрощает поддержку или рефакторинг кода в дальнейшем.
Помните: пустые строки также являются частью программного кода.
Ожидание ввода пользователя
Следующая программа ожидает ввода пользователя после выполнения и завершается после нажатия Enter:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
raw_input("按下 enter 键退出,其他任意键显示...\n")
В приведённом выше коде,\nреализует перенос строки. Пока пользователь не нажмёт клавишу Enter для выхода, отображаются другие клавиши.
Несколько операторов в одной строке
Python может использовать несколько операторов в одной строке, разделяя их точкой с запятой (;). Вот простой пример:#!/usr/bin/python import sys; x = 'example'; sys.stdout.write(x + '\n')
После выполнения приведённого выше кода результат вывода:
$ python test.py example
Вывод print
По умолчанию print выводит с новой строкой. Чтобы вывести без новой строки, добавьте запятую в конце переменной.,。
Пример
# -*- coding: UTF-8 -*-
x="a"
y="b"
# Вывод с новой строкой
print x
print y
print '---------'
# Вывод без новой строки
print x,
print y,
# Вывод без новой строки
print x,y
Результат приведённого выше примера:
a b --------- a b a b
Для более подробной информации см.:print без новой строки в Python2 и Python3
Несколько операторов образуют группу кода
Группа операторов с одинаковым отступом образует блок кода, который мы называем группой кода.
Составные операторы, такие как if, while, def и class, начинаются с ключевого слова в первой строке и заканчиваются двоеточием (:). Одна или несколько строк после этой строки образуют группу кода.
Первую строку вместе со следующей группой кода мы называем секцией.
Как в следующем примере:
if expression : suite elif expression : suite else : suite
Аргументы командной строки
Многие программы могут выполнять операции для просмотра базовой информации. Python может использовать-hпараметры для просмотра справочной информации по каждому параметру:
$ python -h usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -c cmd : program passed in as string (terminates option list) -d : debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit [ etc. ]
При выполнении Python в виде скрипта мы можем получать параметры, вводимые из командной строки. Подробнее об использовании см.Аргументы командной строки Python。
Дополнительные расширения