Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Основы Python: Синтаксис и фундаментальные концепции

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

Python похож на Perl, C и Java, но имеет существенные отличия.

Интерактивный режим

Запуск интерпретатора без скрипта показывает приглашение:

$ python
Python 2.4.3 (#1, Nov 11 2010, 13:34:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Введите в приглашении:

>>> print "Hello, Python!"

В новых версиях Python (3.x) используйте print("Hello, Python!"). В версии 2.4.3 результат:

Hello, Python!

Скриптовый режим

Запуск интерпретатора с файлом скрипта выполняет его до конца. Файлы Python имеют расширение .py.

Создайте test.py:

Live Demo
print "Hello, Python!"

Запуск (предполагается, что Python в PATH):

$ python test.py

Результат:

Hello, Python!

Альтернативный способ — сделать скрипт исполняемым:

Live Demo
#!/usr/bin/python
print "Hello, Python!"

Команды:

$ chmod +x test.py
$ ./test.py

Результат тот же.

Идентификаторы в Python

Идентификатор — имя переменной, функции, класса, модуля или объекта. Начинается с буквы (A-Z, a-z) или подчёркивания (_), далее — буквы, подчёркивания, цифры (0-9).

Нельзя использовать @, $, % в идентификаторах. Python чувствителен к регистру: Manpower и manpower — разные идентификаторы.

Соглашения по именованию:

Зарезервированные слова

Ключевые слова Python (нельзя использовать как имена переменных/констант). Все в нижнем регистре:

andexecnot
assertfinallyor
breakforpass
classfromprint
continueglobalraise
defifreturn
delimporttry
elifinwhile
elseiswith
exceptlambdayield

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

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

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

Правильно:

if True:
    print "True"
else:
    print "False"

Ошибка (разный отступ):

if True:
    print "Answer"
  print "True"
else:
    print "Answer"
  print "False"

Все последовательные строки с одинаковым отступом формируют блок. Пример с различными блоками:

#!/usr/bin/python
import sys
try:
    file = open(file_name, "w")
except IOError:
    print "There was an error writing to", file_name
    sys.exit()
print "Enter '", file_finish, "' When finished"
while file_text != file_finish:
    file_text = raw_input("Enter text: ")
    if file_text == file_finish:
        file.close()
        break
    file.write(file_text)
    file.write("\n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
    print "Next time please enter something"
    sys.exit()
try:
    file = open(file_name, "r")
except IOError:
    print "There was an error reading file"
    sys.exit()
file_text = file.read()
file.close()
print file_text

Многострочные операторы

Операторы обычно заканчиваются новой строкой. Для переноса используется обратный слеш \:

total = item_one + \
        item_two + \
        item_three

Внутри [], {}, () перенос не требуется:

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

Кавычки в Python

Допускаются одинарные ('), двойные (") и тройные (''' или """) кавычки для строковых литералов, если открывающие и закрывающие совпадают. Тройные кавычки позволяют строку распределить на несколько строк:

word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph.
It is made up of multiple lines and sentences."""

Комментарии в Python

Символ # (не внутри строки) начинает комментарий. Все символы до конца строки игнорируются интерпретатором.

Live Demo
#!/usr/bin/python
# First comment
print "Hello, Python!"
# second comment

Результат:

Hello, Python!

Комментарий можно разместить после оператора:

name = "Madisetti"  # This is again comment

Многострочные комментарии:

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

Тройные кавычки также игнорируются и могут служить многострочными комментариями:

'''
This is a multiline comment.
'''

Пустые строки

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

Ожидание пользователя

Следующая строка выводит подсказку и ждёт нажатия Enter:

#!/usr/bin/python
raw_input("\n\nPress the enter key to exit.")

\n\n создаёт две пустые строки перед текстом. Удобно для удержания консольного окна открытым.

Несколько операторов в одной строке

Точка с запятой ; позволяет писать несколько операторов в одной строке, если ни один не начинает новый блок:

import sys; x = 'foo'; sys.stdout.write(x + '\n')

Группы операторов как суиты (suites)

Группа отдельных операторов, образующая единый блок, называется suite. Сложные операторы (if, while, def, class) требуют заголовочной строки и суита.

Заголовочная строка начинается с ключевого слова и заканчивается двоеточием (:), за которым следуют строки суита. Например:

if expression:
    suite
elif expression:
    suite
else:
    suite

Аргументы командной строки

Многие программы дают базовую справку по запуску с ключом -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

  1. Освоение типов данных в Python: практическое руководство
  2. Мастерство операторов Python: Полное руководство
  3. Оператор pass в Python: практическое руководство
  4. Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
  5. Освоение Python time.sleep(): лучшие практики, многопоточность и реальные примеры
  6. Основы Java: базовый синтаксис, классы, объекты и методы
  7. Базовый синтаксис C: токены, идентификаторы, ключевые слова и пробелы
  8. Понимание C++: базовый синтаксис и основы ООП
  9. Основы MATLAB: Синтаксис, команды и спецсимволы
  10. Основы C#: базовый синтаксис и концепции ООП