Construct Community

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Construct Community » Прочие уроки » Python in Construct 3


Python in Construct 3

Сообщений 1 страница 9 из 9

1

Python in Construct 3.

Итак, мы продолжаем знакомиться с великолепным языком программирования Python и его применением в Construct. В этой лекции мы рассмотрим синтаксис и текстовые выражения. Некоторые примеры взяты из Википедии и Викиучебника, который есть в библиотеке. Желаем приятного чтения!

Теория

Синтаксис и семантика

Язык обладает чётким и последовательным синтаксисом, продуманной модульностью и масштабируемостью, благодаря чему исходный код написанных на Питоне программ легко читаем.
Операторы
Набор операторов достаточно традиционен. Вот некоторые из них:
• условный оператор if (если). Альтернативный блок после else (иначе). Если условий и альтернатив несколько, можно использовать elif (сокр. от else if).
• операторы цикла while (пока) и for (для). Внутри цикла возможно применение break и continue для прерывания цикла и перехода сразу к следующей итерации соответственно.
• оператор определения класса class.
• оператор определения функции, метода или генератора def. Внутри возможно применение return (возврат) для возврата из функции или метода, а в случае генератора — yield (давать).
• оператор обработки исключений try — except — else или try — finally (начиная с версии 2.5 можно использовать finally, except и else в одном блоке).
• оператор pass ничего не делает. Используется для пустых блоков кода.
Одной из интересных синтаксических особенностей языка является выделение блоков кода с помощью отступов (пробелов или табуляций), поэтому в Питоне отсутствуют операторные скобки begin/end как в языке Паскаль или фигурные скобки, как в Си. Такой «трюк» позволяет сократить количество строк и символов в программе и приучает к «хорошему» стилю программирования. С другой стороны, поведение и даже корректность программы может зависеть от начальных пробелов в тексте. Некоторые критики языка считают такое поведение неинтуитивным и неудобным. (Википедия)
Строки
Помимо чисел, Python может работать со строками, которые, в свою очередь, могут быть описаны различными способами. Строки могут быть заключены в одинарные или двойные кавычки:
>>> 'spam eggs'
'spam eggs'
>>> 'doesn\'t'
"doesn't"
>>> "doesn't"
"doesn't"
>>> '"Yes," he said.'
'"Yes," he said.'
>>> "\"Yes,\" he said."
'"Yes," he said.'
>>> '"Isn\'t," she said.'
'"Isn\'t," she said.'
Строковые литералы могут быть разнесены на несколько строк различными способами. Могут быть использованы продолжающие строки, с обратным слэшем в качестве последнего символа строки, сообщающим о том, что следующая строка есть продолжение текущей[8]:
hello = "This is a rather long string containing\n\
several lines of text just as you would do in C.\n\
    Note that whitespace at the beginning of the line is\
significant."

print hello
Обратите внимание, что новые строки все ещё нужно подключать в строку через \n; новая строка, за которой следут обратный слэш — не обрабатывается. Запуск примера выведет следующее:
This is a rather long string containing
several lines of text just as you would do in C.
    Note that whitespace at the beginning of the line is significant.
Если мы объявим строковой литерал сырым (raw)[9] — символы \n не будут конвертированы в новые строки, но и обратный слэш в конце строки, и символ новой строки в исходном коде — будут добавлены в строку в виде данных. Следовательно, код из примера:
hello = r"This is a rather long string containing\n\
several lines of text much as you would do in C."

print hello
выведет:
This is a rather long string containing\n\ several lines of text much as you would do in C.
Или, строки могут быть обрамлены совпадающей парой тройных кавычек: """ или '''. Окончания строк не нужно завершать тройными кавычками - при этом будут включены в строку.
print """
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
"""
выводит в результате следующее:
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
Интерпретатор выводит результаты операций над строками тем же способом, каким они были введены: в кавычках, а также в кавычках и с другими забавными символами, экранированными обратными слэшами — для того, чтобы показать точное значение. Строка заключается в двойные кавычки если строка содержит одинарную кавычку и ни одной двойной, иначе она заключается в одинарные кавычки. (Оператор print, описанный позже, может использоваться для вывода строк без кавычек или экранирования.)
Строки могут конкатенироваться (склеиваться вместе) оператором + и быть повторенными оператором *:
>>> word = 'Help' + 'A'
>>> word
'HelpA'
>>> '<' + word*5 + '>'
'<HelpAHelpAHelpAHelpAHelpA>'
Два строковых литерала, расположенные друг за другом, автоматически конкатенируются; первая строка в предыдущем примере также могла быть записана как word = 'Help' 'A'; это работает только с двумя литералами — не с произвольными выражениями, содержащими строки.
>>> 'str' 'ing'                   #  <-  Так — верно
'string'
>>> 'str'.strip() + 'ing'   #  <-  Так — верно
'string'
>>> 'str'.strip() 'ing'     #  <-  Так — не верно
  File "<stdin>", line 1, in ?
    'str'.strip() 'ing'
                      ^
SyntaxError: invalid syntax

Практика
Если вы читали предыдущий материал, то уже узнали, что можно делать со строками. Их можно соединять (конкатенировать), повторять и т.д. Сейчас мы сделаем пример с соединением двух строк. К сожалению, из-за сырости Construct на данный момент это реализовать невозможно, поэтому мы будем работать с командной строкой.
Итак:

1. Открываем Блокнот (или PyScripter – см. Мини-урок «Python IDE»)
2. Вводим туда следующий код:

Код:
word1 = “cat ”
word2 = “kiss ”
word3 = “you :D”
word = word1 + word2 + word3
print word

3. Сохраняем и запускаем через командную строку (Блокнот) либо жмём на “Run” (PyScripter)
4. Если всё прошло удачно, у вас в окошечке вывода появится строка «cat kiss you :D»
5. Если строки не появилось, внимательно перечитайте всё, что вы написали прежде.
Итак, разберём, что же делает написанный нам код:

Код:
word1 = “cat ”
word2 = “kiss ”
word3 = “you :D”

Тут без комментариев. Назначаются три переменные с частями предложения.

Код:
word = word1 + word2 + word3

Самая «интересная» строка. В ней происходит «соединение» всех трёх переменных (частей предолжения) в одно целое.
И последняя строка выводит получившееся целое на экран.

Итак, теперь можно попытаться реализовать нечто интерактивное. Для этого заменим строчку word1 = “cat ” на word1 = raw_input() и запустим.
Нам потребуется ввести строку. Введите имя, например, своей жены (с пробелом после имени) и нажмите «Enter». На экране появится «Имя kiss you :D» :D

To be continued…
Да, мы движемся медленно, но верно!  Как говорит русская пословица «Тише едешь – дальше будешь».Так что ждите следующего урока и отвечайте на вопросы в конце. Не прощаюсь 

Вопросы:
1. За счёт чего синтаксис языка такой лёгкий?
2. В какие кавычки могут быть заключены строка?
3. Каким оператором соединяются строки?
4*. Что обозначает оператор raw_input()

Отредактировано GamePr0graameR (2009-11-17 08:37:26)

2

GamePr0graameR, ты сам это всё написал, или это копи-паст?

3

Часть сам, часть - из Викиучебника (там, где из Вики, указано)

4

я думал это Python in Construct http://imgs.su/smile2/79.gif

5

mov ax,10h, это он и есть :-) Во время написания урока хотелось повесить на одной перекладине всех разрабов Construct за его работу с текстом :-) (в 0.99.42)

6

А причём тут конструкт?

7

mov ax,10h написал(а):

А причём тут Construct?

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

8

GamePr0graameR написал(а):

print word3

Мне кажется надо было писать print word... Т.к. переменной word3 присваивалось значение 'cat :D', а переменной word присваивалось значение word1+word2+word3... Но я не проверял код, так что не уверен http://www.kolobok.us/smiles/standart/black_eye.gif

9

Alegor, спасибо! Вот блин, проглядел :D


Вы здесь » Construct Community » Прочие уроки » Python in Construct 3


создать свой форум бесплатно