Construct Community

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

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


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


Python в Construct 2

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

1

Python In Construct. Лекция 2

Итак, мы продолжаем знакомиться с возможностями Python и их применением. Отныне в конце каждой лекции будут вопросы и практические задания. Также лекции разбиты по категориям: Теория и Практика. Желаю приятного чтения!

Теория

История
Разработка языка Python была начата в конце 1980-х годов[5] сотрудником голландского института CWI Гвидо ван Россумом. Для распределённой ОС Amoeba требовался расширяемый скриптовый язык, и Гвидо начал писать Python на досуге, позаимствовав некоторые наработки для языка ABC (Гвидо участвовал в разработке этого языка, ориентированного на обучение программированию). В феврале 1991 года Гвидо опубликовал исходный текст в ньюсгруппе alt.sources[6]. С самого начала Python проектировался как объектно-ориентированный язык.
Название языка произошло вовсе не от вида пресмыкающихся. Автор назвал язык в честь популярного британского комедийного телешоу 1970-х «Воздушный цирк Монти Пайтона». Впрочем, всё равно название языка чаще ассоциируют именно со змеёй, нежели с фильмом — пиктограммы файлов в KDE или в Microsoft Windows и даже эмблема на сайте python.org (до выхода версии 2.5) изображают змеиные головы.
Наличие дружелюбного, отзывчивого сообщества пользователей считается наряду с дизайнерской интуицией Гвидо одним из факторов успеха Python. Развитие языка происходит согласно чётко регламентированному процессу создания, обсуждения, отбора и реализации документов PEP (Python Enhancement Proposal) — предложений по развитию Python.[7]
3 декабря 2008 года[8], после длительного тестирования, вышла первая версия Python 3000 (или Python 3.0, также используется сокращение Py3k). В Python 3000 устранены многие недостатки архитектуры с максимально возможным (но не полным) сохранением совместимости со старыми версиями Питона. На сегодня поддерживаются обе ветви развития (Python 3.0 и 2.x).(Википедия)
Философия
У языка Python даже сформировалась своя философия. Она выражена в документе , именуемом «Дзен Python» (автор – Тим Пейтерс). Его перевод на русский язык:
• Красивое лучше, чем уродливое.
• Явное лучше, чем неявное.
• Простое лучше, чем сложное.
• Сложное лучше, чем запутанное.
• Плоское лучше, чем вложенное.
• Разреженное лучше, чем плотное.
• Читабельность имеет значение.
• Особые случаи не настолько особые, чтобы нарушать правила.
• Хотя практичность побеждает стремление к чистоте.
• Ошибки никогда не должны замалчиваться.
• Если не замалчиваются явно.
• Если видишь двусмысленность, отбрось искушение угадать.
• Должен существовать один — и, желательно, только один — очевидный способ сделать что-то.
• Хотя он поначалу может быть и не очевиден, если вы не голландец.
• Сейчас лучше, чем никогда.
• Хотя никогда зачастую лучше, чем прямо сейчас.
• Если реализацию сложно объяснить — идея плоха.
• Если реализацию легко объяснить — идея, возможно, хороша.
• Пространства имён, черт возьми, — отличная идея! Наделаем их побольше!
Из этого документа легко понять основные черты языка. Просмотреть «Дзен Питона» на английском можно, набрав import this в интерпретаторе.
Практика

Циклы

Сегодня мы рассмотрим возможности циклов. Они упрощают однотипные операции. К примеру, если мы захотим напечатать строку 10 раз, то нам придётся ввести:
print “Некоторая строка”
print “Некоторая строка”
print “Некоторая строка”
print “Некоторая строка”
print “Некоторая строка”
print “Некоторая строка”
print “Некоторая строка”
print “Некоторая строка”
print “Некоторая строка”
print “Некоторая строка”
Нудно? А теперь представьте, что нам нужно напечатать эту строку не 10, а скажем 100000 раз? Впечатлились?
Циклы всё упрощают. Вместо предыдущего кода мы могли бы набрать:
x = 1
while x < 10:
print " Некоторая строка "
x+=1
4 строки вместо 10 – неплохо? А чтобы сгенерировать 1000000 таких строк, нужно всего то изменить цифру 10 на 1000000. Итак, формат цикла while:
while “<условие 1>»
<выражение 1>
Обратите внимание! В таком выражении обязательно нужно прибавлять к переменной счётчику (в нашем случае - x). Зачем? Если вы этого не сделаете, то x никогда не станет равен 10 => наш цикл будет выполнятся вечно.
Впрочем, довольно голословить, перейдём к делу
Итак, сейчас мы сделаем программу, которая будет выводить 10 Message Box’ов. Полетели:
1. Открываем Construct и создаём новую игру
2. Переходим в Event Sheet Editor и создаём Event “Start of Layout”
3. Создаём скрипт и вводим:
x = 1
while x < 10:
System.MessageBox("Some", "Some", "Yes/No", "Error")
x+=1
4. Прикрепляем к событию Start of Layout Изображение
5. Запускаем. Перед нами промелькивает 10 MessageBox’ов
Просто? По крайней мере, гораздо удобней, чем создавать 10 MessageBox’ов
Циклы мы подробно рассмотрим позднее.

Python в качестве калькулятора
Прежде, чем вы будете читать следующие строки, учтите, что это – не про Construct. Здесь имеются в виду общие принципы Python. Все примеры можно (и нужно)выполнять из командной строки (находится по адресу C:\Python25 или Python26(в зависимости от версии)\python.exe)
Итак…
Использование Python в качестве калькулятора
Давайте опробуем несколько простых команд Python. Запустите интерпретатор и дождитесь появления основного приглашения — >>>. (Это не должно занять много времени.)
Числа
Поведение интерпретатора сходно поведению калькулятора: вы вводите выражение, а в ответ он выводит значение. Синтаксис выражений прямолинеен: операторы +, -, * и / работают также как и в большинстве других языков (например, Паскале или C); для группировки можно использовать скобки. Например:
>>> 2+2
4
>>> # Это комментарий
... 2+2
4
>>> 2+2 # а вот комментарий на одной строке с кодом
4
>>> (50-5*6)/4
5
>>> # Деление целых чисел возвращает округленное к минимальному значение:
... 7/3
2
>>> 7/-3
-3
Знак равенства ('=') используется для присваивания переменной какого-либо значения. После этого действия в интерактивном режиме ничего не выводится:
>>> width = 20
>>> height = 5*9
>>> width * height
900
Значение может быть присвоено нескольким переменным одновременно:
>>> x = y = z = 0 # Нулевые x, y и z
>>> x
0
>>> y
0
>>> z
0
Переменные должны быть определены (defined) (должны иметь присвоенное значение) перед использованием, иначе будет сгенерирована ошибка:
>>> # попытка получить доступ к неопределённой переменной
... n
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined
Присутствует полная поддержка операций с плавающей точкой; операторы с операндами смешанного типа конвертируют целочисленный операнд в число с плавающей точкой:
>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5
Также поддерживаются комплексные числа; к мнимым частям добавляется суффикс j или J. Комплексные числа с ненулевым вещественным компонентом записываются в виде (<вещественная_часть>+<мнимая_часть>j), или могут быть созданы с помощью функции complex(<вещественная_часть>, <мнимая_часть>).
>>> 1j * 1J
(-1+0j)
>>> 1j * complex(0, 1)
(-1+0j)
>>> 3+1j*3
(3+3j)
>>> (3+1j)*3
(9+3j)
>>> (1+2j)/(1+1j)
(1.5+0.5j)
Комплексные числе всегда представлены в виде двух чисел с плавающей точкой - вещественной и мнимой частями. Для получения этих частей из комплексного числа z используйте z.real и z.imag.
>>> a=1.5+0.5j
>>> a.real
1.5
>>> a.imag
0.5
Функции конвертации (приведения) к вещественным и целым числам (float(), int() и long()) не работают с комплексными числами — нет единственно правильного способа сконвертировать комплексное число в вещественное. Используйте функцию abs(z) чтобы получить модуль числа (в виде числа с плавающей точкой) или z.real чтобы получить его вещественную часть:
>>> a=3.0+4.0j
>>> float(a)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: can`t convert complex to float; use abs(z)
>>> a.real
3.0
>>> a.imag
4.0
>>> abs(a) # sqrt(a.real**2 + a.imag**2)
5.0
>>>
В интерактивном режиме последнее выведенное выражение сохраняется в переменной _. Это значит, что если вы используете Python в качестве настольного калькулятора — всегда есть способ продолжить вычисления с меньшими усилиями, например:
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
>>>
Эта переменная для пользователя должна иметь статус только для чтения. Не навязывайте ей значение собственноручно — вы создадите независимую переменную с таким же именем, скрывающую встроенную переменную вместе с её магическими свойствами.
Заключение
На сегодня всё! Ждите следующего урока! А пока ждёте, можете отвечать на вопросы и выполнить практическое задание в самом конце. Если имеются вопросы, пишите сюда. Удачи!

Вопросы:
1. Кто является автором Python?
2. В честь чего назвали этот язык?
3. Назовите хотя бы 3 черты языка, видные из его философии
4. Для чего нужны циклы?
5. Зачем добавлять x=+1?
6. Как запустить интерпретатор Python?
7. Как сложить 2 числа в интерпретаторе?
8. NameError: name 'n' is not defined - что означает это сообщение?
9. Назовите функции конвертации чисел

Практическое задание:
Измените программу так, чтобы
а) выскакивало 20 MessageBox’ов
б) чтобы они выскакивали по нажатию кнопки

З.Ы Вопросы и практическое задание к 1 части:
1. Что такое Python?
2. Как называется эталонная реализация Python?
3. Официальный сайт Python
4. Как изменить текст в текстовом поле с помощью Python?
5. Оператор ветвления

Практическое задание:
Программа, которая будет заменять слово "mother" на слово "father"

З.ы Если что-то не нравится\непонятно - пишите

Отредактировано GamePr0graameR (2009-10-24 23:04:09)

2

Отличный урок. спасибо!  :flag:

3

GamePr0graameR
Благодарю=)  :)

4

жду комментариев :-)

5

Ну, впечатление создается, что питон очень простой(Хотя паскаль не на много сложнее). Вобщем отличный урок :flag:

6

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

Ну, впечатление создается, что питон очень простой

А так оно и есть :-)


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


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