Шуман Х. - Python для детей - 2019. # Startwerte festlegen Red (255,0,0)
Скачать 5.95 Mb.
|
Глава Установка Python A 326 Рис. А.8.Файл установки Pygame 4. Дважды щелкни мышью по этому значку, чтобы начать установку. Ты также можешь переместить программу установки в папку Py- thon и перейти в нее, а затем начать установку. Рис. А.9.Выбор пользователей, которым будет доступна установленная программа Установка библиотеки Pygame, вариант 1 327 5. Установи переключатель в положение Install for all us- ers (Установить для всех пользователей) (рис. А.9), а за- тем нажми кнопку Next (Далее). Рис. А.10.Окно выбора расположения Python 6. В следующем окне ты можешь сразу нажать кнопку Next (Далее), если программа установки определила, куда установлен Python (рис. А.10). Если это не так, от- крой небольшое меню, щелкнув мышью по пункту Py- thon from another location (Python в другом располо- жении). Рис. А.11.Выбор папки установки Python Глава Установка Python A 328 7. Выбери первый пункт, чтобы установить Pygame на ло- кальный жесткий диск (рис. А.11). Рис. А.12.Указание пути к папке с Python 8. Теперь укажи путь к папке, в которую установлен Py- thon (рис. А.12). Затем нажми кнопку Next (Далее). Рис. А.13.Завершение установки Pygame 9. Когда появится окно, показанное на рис. А.13, ты смо- жешь завершить установку, нажав кнопку Finish (За- вершить). Установка библиотеки Pygame, вариант 2 329 Установка библиотеки Pygame, вариант 2 Первый способ установки работает почти всегда, но, к со- жалению, может случиться так, что модуль Pygame не им- портируется в программу Python, потому что отсутствуют необходимые файлы. В этом случае есть альтернативный способ. Прежде чем приступить, нужно удалить установленный пакет Pygame. Это можно сделать, запустив программу установки еще раз и установив переключатель в положение, показанное на рис. А.14, а затем нажав кнопку Finish (Завершить). Рис. А.14. Удаление Pygame Теперь Pygame можно установить. Открой оболочку командной строки Windows (например, выбрав соответствующий пункт в меню Пуск (Start) или введя буквы CMD в окне поиска). Глава Установка Python A 330 Рис. А.15.Оболочка командной строки С помощью команды cd перейди в каталог C:\Python (рис. А.15). Затем выполни следующую команду: py m pip install pygame Теперь дистрибутив Pygame, соответствующий твоей вер- сии Python, будет загружен из интернета и распакован в ка- талоги C:\Python\Lib и C:\Python\include. Если в оболочке командной строки появится запрос на обнов- ление модуля pip, как показано на рис. А.16, выполни команду python m pip install upgrade pip. Рис. А.16.Установка Pygame в оболочке командной строки Файлы примеров 331 Теперь ты можешь закрыть окно оболочки командной стро- ки, Pygame установлен. Файлы примеров Если ты хочешь использовать файлы примеров из этой книги, то можешь скачать их на странице dmkpress.com Затем ты можешь разместить их в папке на жестком диске. Я скопировал эти файлы в папку C:\Python\Projects. (В папку C:\Python я ранее установил сам Python и модуль Pygame.) 332 Б Решение распространенных проблем Поиск ошибок раздражает многих разработчиков про- грамм. К тому же самые сложные проблемы обычно на- столько хорошо скрыты, что начинаешь сомневаться в том, что их вообще найдешь когда-нибудь. Во многих случа- ях следующий небольшой контрольный список поможет определить проблему: Не пропущены ли такие «мелочи», как запятая, точка, двоеточие? Все блоки кода программы (например, if, while, for, try, def ) закрыты? Указаны ли двоеточия в конце строк условий и круглые скобки после имен функций, даже у не имеющих пара- метров? Выполняются ли условия в инструкциях if и while? Присвоены ли значения переменным и параметрам, обрабатываемым далее? Указано ли слово self в определении класса, перед атрибутом или в списке параметров? Совпадают ли типы данных слева и справа от оператора присваивания (=)? Не перепутаны ли операторы присваивания (=) и ра- венства (==)? 333 В Ответы на вопросы и задачи Глава 1 Вопросы 1 Для ввода и вывода информации в Python используют- ся функции print() и input(). Но это не единственные функции с таким предназначением, о других ты узна- ешь позже. 2 Интерпретатор переводит каждую строку программы в машинный язык для компьютера по отдельности, а компилятор – программу целиком. 3 Только на первый взгляд: инструкция присвоения, на- пример Number = 2 * 3, похожа на уравнение, но код Number = Number + 1 – это также инструкция присвоения. Задачи Нет задач. Глава 2 Вопросы 1 Оператор с одинарным символом равенства (=) отвеча- ет за присваивание, а с двойным (==) – за сравнение. Глава Ответы на вопросы и задачи В 334 2 Фрагмент программы может быть упрощен с помощью инструкции else: if Number == 0 : print("Нет результата"); else : print(1/Number); Задачи 1 См. файл reciprocal.py. 2 См. файл password.py. Глава 3 Вопросы 1 Это операторы сравнения, является ли число меньше (<) или больше (>) указанного, причем указанное чис- ло не учитывается. Если ты хочешь включить указан- ное число в сравнение, используй операторы <= или >= соответственно. Например: условие x < 5 выполняется (истинно), если x равен 1, 2, 3 или 4; а условие x <= 5 вы- полняется, если x равен 1, 2, 3, 4 или 5. 2 Инструкция Value + 1 увеличивает значение на 1, Value 1 – вычитает 1, а Value * 2 – удваивает значение. 3 Случайное число для игральной кости генерируется следующей инструкцией: Dice = random.randint(1,6) Задачи 1 Дополнение end = "" можно увидеть в программах mathe1a.py, mathe2a.py и mathe3a.py. 2 Программа grade2.py поддерживает 10-балльную систе- му оценок. 3 Пример можно увидеть в файле age.py. Глава 4 Вопросы 1 С помощью функции sleep() модуля time компьютер делает паузу, указанную в секундах. В функции time. sleep(2) используется, например, две полные секунды, а в time.sleep(0,1) – одна десятая секунды. Файлы примеров 335 2 Начнется бесконечный цикл, потому что капитал ни- когда не станет желаемого значения. 3 Все три символа невидимы на экране: пробел – это маленький промежуток, который выглядит как один пустой символ ( ). Новая строка – это, так сказать, го- ризонтальный промежуток (между двумя строками). А пустая строка – это пустой текст (""). Задачи 1 Программа называется mathe5.py. 2 Твой компьютер вычислит в программе guess5.py число, которое ты задумал, только если ты его не обманешь. 3 Аналогично, но компьютер сам с собой играет в про- грамме guess6.py. Обмануть не получится. Глава 5 Вопросы 1 Глобальные переменные применяются и существуют везде в программе, локальные переменные – толь- ко внутри блока инструкций (функция, условная кон- струкция). 2 Переменные могут использоваться как параметры, а также как фиксированные значения (константы). Задачи 1 Версия программы со строками сохранена в файле swap3.py. 2 В файле summe.py введи, например, 10, тогда получишь сумму всех целых чисел от 1 до 10. 3 В файле mean.py введи, например, 10, тогда получишь среднее значение целых чисел от 1 до 10. 4 Нет примеров для этой задачи. Реши ее сам: в каких своих проектах ты захочешь использовать функции. Может быть, Hеllo или Mathe? Глава 6 Вопросы 1 Переменные, используемые в классе, называются атри- бутами, а функции, определенные в классе, называются методами. Глава Ответы на вопросы и задачи В 336 2 Инкапсуляция означает, что несколько элементов объ- единяется в один класс. В этом случае доступ извне возможен только через ссылку на объект, который был создан как экземпляр этого класса. 3 Закрытые элементы могут использоваться только внут- ри объекта или класса, а защищенные элементы – во всех производных классах. Задачи Нет задач. Глава 7 Вопросы 1 Пока что тебе известны компоненты Label и Button, а также Tk для класса окна и messagebox для окна сообще- ния. 2 Параметр command используется для связи компонента (например, кнопки) с функцией события. Задачи 1 Ты найдешь предлагаемое решение в файле horoskop1. py. Глава 8 Вопросы 1 Когда происходит событие < 2 Переключатели используют общую переменную (типа IntVar ), с помощью которой можно определить номер позиции переключателя. Каждый флажок получает свою собственную переменную, определяющую, уста- новлен он или нет. Задачи 1 1/2/3. Решения можно найти в файлах horoskop2.py – horoskop4.py. Файлы примеров 337 Глава 9 Вопросы 1 Компонент Label может отображать что-либо только при вводе чего-либо в компонент Entry. 2 Текстовый файл открывается с помощью метода open(). В зависимости от режима ("r" или "w") содержимое файла можно прочитать или записать что-либо в файл. Также это может быть выполнено с помощью методов read() и write(). Задачи 1 Это уже сделано в файле psych5.py. 2 Такой ползунковый регулятор можно найти в файле percent.py. Глава 10 Вопросы 1 Сначала создай экземпляр класса Menu. Это может быть строка меню, если это выпадающее меню. Функции add_cascade() и add_command() добавляют пункты в строку и команды в меню. 2 Для создания диалогового окна используй метод mes sagebox . Нажав кнопку, ты открываешь окно при вызове функции showinfo() в соответствующей функции собы- тия. Задачи Нет задач. Глава 11 Вопросы 1 Начало системы координат на экране находится в верх- нем левом углу и имеет координаты x = 0 и y = 0. 2 При рисовании линии, которая всегда является прямой, задаются координаты начальной и конечной точек. Для прямоугольников и эллипсов углы указываются слева сверху и справа внизу. В эту невидимую область должен быть вписан прямоугольник или эллипс. Глава Ответы на вопросы и задачи В 338 Задачи 1 Решение можно найти в файле graphic6a.py. 2 Программа с разноцветными квадратами называется graphic6b.py. 3 Попытку нарисовать дом я предпринял в программе house1.py. Глава 12 Вопросы 1 Сначала должен быть загружен файл изображения, за- тем создается соответствующий объект изображения: Picture = PhotoImage (file = "Image.gif") Object = Graphic.create_image (x, y, image = Bild) Задачи 1 Квадрат появляется и перемещается в программе mov ie1A.py. 2 Решение этой задачи в файлах movie6.py и mplayerY.py. Глава 13 Вопросы 1 Поскольку спрайт часто перемещается по игровому полю, имеющему цвет или текстуру, рекомендуется ис- пользовать изображения с прозрачным фоном, чтобы ты не видел этот фон на поле. 2 Ты можешь обрабатывать с помощью event.type нажа- тия любых клавиш, даже их сочетаний. Более подроб- ную информацию можно найти в документации Pyga- me на сайте www.pygame.org/docs/ref/key.html Задачи 1 В программе buggy3a.py жук «перебегает» на другую сторону. Глава 14 Вопросы 1 Разумеется, ты можешь управлять персонажем с по- мощью мыши и клавиатуры сразу. Тебе просто нужно Файлы примеров 339 оставить оба события в одной программе (как, напри- мер, в buggy5B.py). 2 С помощью модуля math у тебя в распоряжении есть множество математических функций. Задачи 1 Решение задачи ты найдешь в файле buggy5A.py. Глава 15 Вопросы Нет вопросов. Задачи 1 В файле dodger4A.py ты найдешь решение задачи. 340 Предметный указатель Символы __init__, 117 A and, 63 C Canvas, 212 загрузка изображения, 227 текст, 212 command параметр, 139 F for (цикл), 80 H help(), команда, 22 I IDLE, 14 интерфейс, 27 команды, 38 скачивание, 14 создание ярлыка, 27 input(), функция, 26 , 34 O or, 63 P PIL, 228 Pillow, 228 print(), функция, 26 , 34 pygame, 245 математические вычисления, 271 управление объектом, 257 Python всплывающее окно, 195 выполнение программы, 32 границы окна, 264 завершение работы, 37 запись в файл, 183 запись файлов, 177 запуск, 19 история, 12 контекстное меню, 195 Файлы примеров 341 координаты, 201 математические вычисления, 271 настройка, 19 открытие файла, 34 поворот объектов, 261 преимущества, 14 приглашение, 21 работа с цветом, 204 рисование мышью, 215 словарь, 94 сложение, 23 создание файла, 31 создание ярлыка, 20 сохранение файла, 32 сочетания клавиш, 198 спрайт, 251 текст, 23 управление объектом, 256 цветной текст, 212 числа, 23 чтение файлов, 177 S self, 117 T tkinter entry, 172 slider, 176 всплывающее окно, 195 диалоговое окно, 145 , 190 заголовок окна, 145 импорт, 136 инструкция grid, 142 инструкция pack, 137 инструкция place, 142 использование классов, 145 кнопки, 152 компоненты, 136 контекстное меню, 195 координаты, 201 меню, 187 модуль, 135 переключатели, 157 ползунковый регулятор, 173 работа с цветом, 204 рисование линий, 204 рисование мышью, 215 сетка, 142 создание рамки, 164 сочетания клавиш, 198 списки, 155 упаковка, 137 флажки, 160 цветной текст, 212 turtle, модуль, 218 А Анимация, 223 Арифметические операции, 50 Б Блок инструкций, 43 В Вектор, 269 Всплывающие окна, 194 Вычисления в Python, 48 Г Генерация чисел, 63 Д Деление на ноль, 54 Диалоговое окно создание, 190 с помощью Python, 145 Дробные числа, 53 Глава Предметный указатель В 342 И Изображение вращение, 238 движение, 236 исчезновение, 240 обработка группы, 230 появление, 240 Инкапсуляция, 114 Интерпретатор, 13 , 22 Интерфейс, разметка, 142 Исключения, 55 обработка, 55 Итерация, 74 К Класс Player, 232 внешний, 230 дочерний, 121 производный, 121 родительский, 121 управление, 281 экземпляр, 114 Ключевое слово not, 90 Ключевые слова, 58 Код, 13 Команда continue, 74 break, 73 Комментарии, 49 Компилятор, 13 Компоненты, 136 tkinter, 136 Конструкция, 43 for, 79 if, 39 if else, 44 try except, 55 Контекстные меню, 194 Л Логическая переменная, 89 Лямбда-выражения, 149 М Машинный язык, 23 Меню, 186 сочетания клавиш, 198 Методы трансформации, 261 Модуль, 125 random, 65 импорт, 65 , 127 создание, 125 Н Наследование, 120 О Обмен значений, 104 Обнаружение столкновений, 282 , 299 Объект защищенный, 134 приватный, 130 публичный, 130 Оператор присваивания, 25 сравнения, 41 , 64 Операция сложения, 23 Отступ в коде, 43 Ошибка «функция не определена», 95 П Палиндром, 90 Параметр, 24 функции, 100 Переменная, 25 глобальная, 98 логическая, 89 локальная, 98 Преобразование строк в целые числа, 51 Преобразование типов, 51 программы, 55 Файлы примеров 343 Приглашение, 21 Программирование, 12 Р Рендеринг, 250 С Связывающие операторы, 63 Смена изображений, 281 Сортировка чисел, 108 Среда разработки, 13 , 14 Строка, 34 Т Текстовый редактор, 13 У Условия объединения, 61 Условная конструкция, 43 Ф Формула, 35 Функция append(), 88 , 110 , 114 , 152 display, 137 exit(), 73 input(), 91 playGame(), 97 randint(), 65 range(), 88 sleep(), 78 str(), 72 Ц Цикл for, 80 while, 67 итерация, 74 Ч Черепашья графика, 217 Число с плавающей запятой, 53 Я Язык программирования, 12 Книги издательства «ДМК Пресс» можно заказать в торгово-издательском холдинге «Планета Альянс» наложенным платежом, выслав открытку или письмо по почтовому адресу: 115487, г. Москва, 2-й Нагатинский пр-д, д. 6А. При оформлении заказа следует указать адрес (полностью), по которому должны быть высланы книги; фамилию, имя и отчество получателя. Желательно также указать свой телефон и электронный адрес. Эти книги вы можете заказать и в интернет-магазине: www.a-planeta.ru. Оптовые закупки: тел. (499) 782-38-89. Электронный адрес: books@alians-kniga.ru. Ханс-Георг Шуман Python для детей Главный редактор Мовчан Д. А. dmkpress@gmail.com Перевод Райтман М. А. Корректор Синяева Г. И. Верстка Чаннова А. А. Дизайн обложки Мовчан А. Г. Формат 70×100 1/16. Гарнитура «PT Serif». Печать офсетная. Усл. печ. л. 27,95. Тираж 200 экз. Веб-сайт издательства: www.dmkpress.com |