Python Базовый синтаксис

Python имеет много общего с такими языками, как Perl, C и Java. Однако есть и некоторые различия.

В этой главе мы изучим базовый синтаксис Python, чтобы помочь вам быстро освоить программирование на Python.


Первая программа на Python

Интерактивное программирование

Интерактивное программирование не требует создания файла сценария; код пишется в интерактивном режиме интерпретатора Python.

В Linux достаточно ввести команду Python в командной строке, чтобы запустить интерактивное программирование. Окно приглашения выглядит следующим образом:

$ 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 следующим образом:

Пример

#!/usr/bin/python

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:

Пример

>>> list =["a", "b", "c"]
>>> 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 содержат только строчные буквы.

иexecnot
assertfinallyили
breakforpass
классfromprint
continueglobalraise
defifreturn
delimporttry
elifinwhile
elseявляетсяwith
exceptlambdayield

Строки и отступы

Самое большое отличие изучения Python от других языков заключается в том, что блоки кода Python не используют фигурные скобки{}для управления классами, функциями и другими логическими проверками. Самая характерная особенность Python — использование отступов для написания модулей.

Количество пробельных символов в отступе может быть разным, но все операторы блока кода должны содержать одинаковое количество пробельных символов отступа. Это должно строго соблюдаться.

В следующем примере для отступа используются четыре пробела:

Пример

if True:
    print ("True")
else:
    print ("False")

Следующий код вызовет ошибку выполнения:

Пример

#!/usr/bin/python
# -*- 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 однострочные комментарии начинаются с#в начале.

Пример

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# Имя файла: test.py

# Первый комментарий
print ("Hello, Python!")  # Второй комментарий

Результат вывода:

Hello, Python!

Комментарии могут располагаться в конце строки оператора или выражения:

name = "Example" # 这里的内容是一个注释

В Python многострочные комментарии используют три одинарные кавычки'''или три двойные кавычки"""。

Пример

#!/usr/bin/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 выводит с новой строкой. Чтобы вывести без новой строки, добавьте запятую в конце переменной.,。

Пример

#!/usr/bin/python
# -*- 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。

Дополнительные расширения