Учим Python, делая крутые игры 2018. Invent your owncomputer gameswith python
![]()
|
spam = 15 >>> spam 15 Выражение spam вычисляется в значение внутри переменной spam и рав- няется 15. Вы также можете использовать переменные в выражениях. Введите в ин- терактивной оболочке следующие команды: >>> spam = 15 >>> spam + 5 20 Вы устанавливаете значение переменной spam,равное 15, поэтому spam + 5 будет аналогично выражению 15 + 5. Ниже приведены шаги, согласно кото- рым вычисляется выражение spam + 5: 30 Глава 1 spam + 5 15 + 5 20 Вы не можете использовать переменную до того, как она будет создана инструкцией присваивания. Если вы попытаетесь это сделать, Python выдаст ошибку, потому что такой переменной на тот момент не существует. Оши- бочное имя переменной также вызовет эту ошибку . >>> spam = 15 >>> spma Traceback (most recent call last): File " ", line 1, in spma NameError: name 'spma' is not defined Ошибка появилась потому, что существует переменная spam, но нет пере- менной spma. Вы можете изменить значение переменной, введя еще одну инструкцию присваивания. Например, введите в интерактивной оболочке следующие ко- манды: >>> spam = 15 >>> spam + 5 20 >>> spam = 3 >>> spam + 5 8 Когда вы впервые вводите spam + 5, выражение вычисляется в сумму 20, потому что вы храните 15 внутри переменной spam. Однако если вы введете spam = 3 , значение 15 внутри переменной будет заменено или перезаписано значением 3, так как переменная может хранить только одно значение. По- скольку значение переменной spam теперь равно 3, когда вы вводите spam + 5 , выражение вычисляется в сумму 8. Перезапись — это словно извлечение одного значения из «коробки» переменной и помещение туда другого, как по- казано на рис. 1.4. Интерактивная среда разработки 31 spam 3 15 Рис. 1.4. Значение 15 в переменной spam перезаписывается значением 3 Вы даже можете использовать значение переменной spam для присвоения нового значения . >>> spam = 15 >>> spam = spam + 5 20 Инструкция присваивания spam = spam + 5 сообщает: «Новое значение переменной spam будет текущим значением spam плюс пять». Чтобы увеличить значение переменной spam в 5 раз, введите в интерактивной оболочке следую- щие команды: >>> spam = 15 >>> spam = spam + 5 >>> spam = spam + 5 >>> spam = spam + 5 >>> spam 30 В этом примере в первой инструкции вы присваиваете переменной spam значение 15. В следующей инструкции вы добавляете 5 к значению перемен- ной spam и присваиваете ей новое значение spam + 5, которое вычисляется как 20. Когда вы делаете это три раза, вычисление переменной spam дости- гает 30. 32 Глава 1 Пока мы рассмотрели только одну переменную, но вы можете создать столько переменных, сколько вам нужно в ваших программах. Например, давайте присвоим разные значения двум переменным, названным eggs и bacon. >>> bacon = 10 >>> eggs = 15 Теперь переменная bacon содержит значение 10, а переменная eggs — 15. Каждая переменная может быть представлена как отдельная «коробка» со своим собственным значением, как показано на рис. 1.5. 10 bacon 15 eggs Рис. 1.5. Переменные bacon и eggs хранят разные значения Введите инструкцию spam = bacon + eggs в интерактивной оболочке, а за- тем проверьте новое значение spam. >>> bacon = 10 >>> eggs = 15 >>> spam = bacon + eggs >>> spam 25 Теперь значение переменной spam равно 25. Когда вы складываете пере- менные bacon и eggs, вы складываете их значения, которые равняются 10 и 15, соответственно. Переменные содержат значения, а не выражения, поэтому переменной spam было присвоено значение 25, а не выражение bacon + eggs. После того как инструкция spam = bacon + eggs присвоила переменной spam значение 25, изменение значения переменной bacon или eggs не повлияет на значение переменной spam. Заключение Из этой главы вы узнали основы написания инструкций для Python. По- скольку компьютеры не имеют собственного интеллекта и понимают только конкретные инструкции, Python нуждается в ваших точных указаниях. Выражения представляют собой значения (например, 2 или 5) в сочета- нии с операторами (например, + или -). Python может вычислять выражения, т. е. приводить выражение к единому значению. Вы можете хранить значения внутри переменных, чтобы ваша программа могла запомнить эти значения и использовать их позже. В Python также существует несколько других типов операторов и значе- ний. В следующей главе мы рассмотрим пару основных принципов и попро- буем написать первую программу. Вы узнаете о работе с текстом в выраже- ниях. Python не ограничивается только числами и умеет гораздо больше, чем простой калькулятор! 34 Глава 2 2 НАПИСАНИЕ ПРОГРАММ Теперь давайте посмотрим, что Python умеет делать с текстом. Почти все про- граммы отображают пользователю не- кий текст, а пользователь, в свою оче- редь, вводит в программы текст при помощи клавиатуры. В этой главе вы созда- дите свою первую программу, которая выполняет обе эти операции. Вы узнаете, как хранить текст в переменных, комбинировать его и отображать на экране. Вы создадите программу, которая отобразит текст «Привет, мир!» и за- просит имя пользователя. В ЭТОЙ ГЛАВЕ РАССМАТРИВАЮТСЯ СЛЕДУЮЩИЕ ТЕМЫ: • Строки • Конкатенация строк • Типы данных (например, строки или целые числа) • Использование редактора файлов для написания программ • Сохранение и запуск программ в IDLE • Поток исполнения • Комментарии • Функция print() • Функция input() • Чувствительность к регистру Строковые значения В Python текстовые значения называются строками . Вы можете исполь- зовать их точно так же, как численные значения. Вы так же можете хранить Написание программ 35 их в переменных. В коде Python строковые значения начинаются и заканчи- ваются символом одинарной кавычки — '. Введите следующий код в интерактивной оболочке: >>> spam = 'привет' Одиночные кавычки сообщают среде начало и конец строкового значе- ния. При этом сами кавычки частью текста не являются. Теперь, если вы вве- дете имя переменной spam в Python, вы увидите ее значение. Помните, что среда находит значения переменных. В нашем случае это строка 'привет'. >>> spam = 'привет' >>> spam 'привет' Строки могут содержать любой символ клавиатуры и могут быть любой длины. Ниже представлено несколько примеров строк. 'привет' 'привет всем!' 'КОТЯТА' '7 яблок, 14 апельсинов, 3 лимона' 'Все, что не относится к слонам, не имеет значения.' 'Давным-давно, в далекой-далекой галактике...' 'O*wY%*&OCfsdYO*&gfC%YO*&%3yc8r2' Конкатенация строк С помощью операторов вы можете комбинировать строковые значения в выражения точно так же, как вы делали это с численными значениями. Объединение двух строк при помощи оператора + называется конкатенаци- ей . Введите выражение 'Привет' + 'мир!' в интерактивной оболочке. >>> 'Привет' + 'мир!' 'Приветмир!' 36 Глава 2 Выражение вычисляется в единое строковое значение 'Приветмир!'. Меж- ду словами нет пробела, потому что его не было ни в одной из двух конкате- нированных строк. Сравните: >>> 'Привет ' + 'мир!' 'Привет мир!' Оператор + работает со строковыми и целочисленными значениями по- разному, потому что это разные типы данных . Любое значение принадлежит к определенному типу данных. Тип данных значения 'Привет' — строка. Тип данных значения 5 — целое число. При помощи типа данных Python опре- деляет, как действуют операторы при вычислении выражений. Оператор + конкатенирует строковые значения, но складывает целочисленные значения и числа с плавающей запятой. Написание кода в среде разработки До сих пор вы вводили инструкции в IDLE по одной. Когда вы пишете программу , вы вводите несколько инструкций и запускаете их сразу. Прямо сейчас вы познаете это на практике. Пришло время написать вашу первую программу! Рис. 2.1. Редактор файлов (сверху) и IDLE (снизу) Написание программ 37 В дополнение к интерпретатору, интерактивная среда разработки имеет еще один интерфейс — редактор файлов . Чтобы открыть его, откройте меню File (Файл) в верхней части окна интерактивной среды разработки. Затем вы- берите пункт New File (Новый файл). Появится пустое окно для ввода кода программы, как показано на рис. 2.1. Эти два окна хоть и похожи, но вам поможет их различить приглашение >>> в интерпретаторе Python, которого нет в редакторе файлов. Создание программы «Привет, мир!» Следуя традиции, наша первая программа ото- бразит на экране текст «Привет, мир!». Приступим . При написании программ помните, что номера в на- чале каждой строки кода указывать не нужно. Эти но- мера нужны для того, чтобы автор мог ссылаться на код по номеру строки. Правый нижний угол редак- тора файлов содержит позицию курсора, позволяя вам определить номер строки любой строки кода . Рисунок 2.2 показывает, что курсор находится в строке 1 и столбце 0. Рис. 2.2. Правый нижний угол редактора файлов указывает, в какой строке находится курсор Введите следующий текст в окне редактора файлов. Это исходный код программы. Он содержит набор инструкций, который Python исполнит по- сле запуска. hello.py 1. # Эта программа здоровается и спрашивает имя. 2. print('Привет, мир!') 3. print('Как тебя зовут?') 4. myName = input() 5. print('Я так рада видеть тебя, ' + myName) Интерактивная среда разработки оформляет разные типы инструкций разными цветами. Когда вы введете исходный код, окно должно выглядеть так, как показано на рис. 2.3. Make sure you’re using Python 3, not Python 2! УБЕ ДИТЕСЬ, ЧТО ИСПО ЛЬЗУЕТЕ PY THON 3, А НЕ PY THON 2! 38 Глава 2 Рис. 2.3. Редактор файлов после ввода кода Убедитесь, что ваше окно IDLE выглядит аналогично. Сохранение программы После того как вы ввели исходный код, вы можете сохранить его. Для этого выберите команду меню File ⇒ Save As (Файл ⇒ Сохранить как) или нажмите сочетание клавиш Ctrl+S на клавиатуре. На рис. 2.4 показано диа- логовое окно Сохранение (Save As), которое откроется после этой команты. Введите слово hello в текстовое поле Имя файла (File name) и нажмите кноп- ку Сохранить (Save). Рис. 2.4. Сохранение программы Время от времени сохраняйте свои программы по мере написания кода. Таким образом, если компьютер внезапно выйдет из строя, или вы случайно завершите работу среды, то вам не понадобится набирать весь код заново. Чтобы загрузить ранее сохраненную программу, вызовите команду меню File ⇒ Open (Файл ⇒ Открыть). Выберите файл hello.py в диалоговом окне и нажмите кнопку Открыть (Open). Cохраненная программа hello.py откро- ется в окне редактора файлов. Написание программ 39 Запуск программы Теперь запустим программу. В редакторе файлов выберите команду меню Run ⇒ Run Module (Запустить ⇒ Запустить модуль) или нажмите клавишу F5 (fn+5 в операционной системе macOS). Ваша программа будет запущена в интерактивной оболочке. Когда программа запросит, введите свое имя. Процесс показан на рис. 2.5. Рис. 2.5. Среда во время выполнения инструкций из файла hello.py Когда вы наберете свое имя и нажмете клавишу Enter, программа попри- ветствует вас по имени. Поздравляю! Вы написали свою первую программу, что делает вас программистом. Нажмите клавишу F5 еще раз для повторного запуска программы и введите другое имя. Если вы получили сообщение об ошибке, сравните свой код с кодом из этой книги с помощью инструмента онлайн-анализа на inventwithpython.com/diff/. Скопируйте и вставьте код из редактора файлов в веб-страницу и нажмите кнопку Compare (Срав- нить). Этот инструмент выделит любые различия между вашим кодом и ко- дом в этой книге, как показано на рис. 2.6. Если во время работы программы вы получили ошибку NameError, как показано ниже, значит, вы используете Python версии 2, а не 3. Привет, мир! Как тебя зовут? Михаил Traceback (most recent call last): File "C:/Python36/test1.py", line 4, in myName = input() File " NameError: name 'Михаил' is not defined 40 Глава 2 Чтобы устранить проблему, установите Python 3 и перезапустите про- грамму. (См. раздел «Загрузка и установка Python» во введении.) Рис. 2.6. Использование инструмента онлайн-анализа на inventwithpython.com/diff / (инструмент выделил строки как различающиеся из-за того, что в них использован русский текст вместо английского) Как работает программа «Привет, мир!» Каждая строка кода является инструкцией, которую Python будет интер- претировать. Набор этих инструкций составляет программу. Инструкции компьютерной программы в чем-то подобны этапам приготовления блюда по рецепту. Python выполняет каждую инструкцию по порядку сверху вниз. Этап, на котором Python исполняет код программы, называется выпол- нением . Когда программа запускается, выполнение начинается с первой ин- струкции. После выполнения одной инструкции Python переходит к следую- щей. Давайте разберем каждую строку кода. Начнем со строки номер 1. Комментарии для программиста Первая строка программы «Привет, мир!» — это комментарий . 1. # Эта программа здоровается и спрашивает имя. Написание программ 41 Комментарии — это важные заметки относительно кода. Их пишут не для Python, но для вас и других программистов. Среда игнорирует комментарии при выполнении программы. Программисты часто помещают перед основ- ной частью кода комментарий, в котором описывают действие программы. Комментарий в программе «Привет, мир!» сообщает вам, что программа при- ветствует вас и спрашивает ваше имя. Функции: Мини-программы внутри программ Функция подобна на «мини-программе» внутри программы. Функция мо- жет содержать несколько инструкций для выполнения. Самое замечательное в функциях то, что часто вам нужно понимать лишь их предназначение и не требуется разбираться, как они работают. Python содержит некоторые встро- енные функции. В программе «Привет, мир!» мы используем функции print() и input(). Вызов функции — это инструкция, которая сообщает Python, что нужно выполнить код внутри функции. Например, ваша программа вызывает функ- цию print() для отображения строки на экране. Функция print() принимает строку, которую вы вводите между круглыми скобками в качестве входных данных или аргументов, и отображает этот текст на экране. Функция print() Строки 2 и 3 программы «Привет, мир!» — это вызовы функции print() . 2. print('Привет, мир!') 3. print('Как тебя зовут?') Значение между круглыми скобками в вызове функции называется аргу- ментом . Аргумент вызова функции print() в строке 2 — 'Привет, мир!', а ар- гумент функции print() в строке 3 — это 'Как тебя зовут?'. Этот процесс на- зывается передачей аргумента функции. Функция input() Строка 4 представляет собой инструкцию присваивания с переменной myName и вызовом функции input() . 4. myName = input() Когда вызывается функция input(), программа ожидает ввода текста пользователем. Текстовая строка, которую вводит пользователь, становит- 42 Глава 2 ся значением, которое вычисляется при вызове функции. Вызовы функций могут использоваться в выражениях везде, где только значение может быть использовано. Значение, которое вычисляется при вызове функции, называется возвра- щаемое значением. (Фактически «значение, возвращаемое вызовом функции» означает то же, что и «значение, вычисленное при вызове функции».) В этом случае возвращаемое значение функции input() представляет собой строку, введенную пользователем — его имя. Если пользователь вводит Михаил, вызов функции input() вычисляется в строку 'Михаил'. Результат выглядит так: myName = input() myName = 'Albert' 'Михаил' Вот так строковое значение 'Михаил' хранится в переменной myName. Выражения в вызовах функций Последняя строка в программе «Привет, мир!» — это еще один вызов функции print(). 5. print('Я так рада видеть тебя, ' + myName) Выражение 'Я так рада видеть тебя, ' + myName находится между круглыми скобками функции print(). Поскольку аргументы всегда являются одиночны- ми значениями, Python сначала вычисляет это выражение, а затем передает полученное значение в качестве аргумента. Если 'Михаил' хранится в перемен- ной myName, процесс вычисления выглядит следующим образом: print('It is good to meet you, ' + myName ) print('It is good to meet you, ' + 'Albert' ) print('It is good to meet you, Albert') print('Я так рада видеть тебя, ' + myName) print('Я так рада видеть тебя, Михаил') print('Я так рада видеть тебя, ' + 'Михаил') Так программа приветствует пользователя по имени. Завершение программы Когда программа выполняет последнюю строку, она останавливается или завершает работу. Это означает, что программа перестает работать. Python забывает все значения, хранящиеся в переменных, включая строку, Написание программ 43 хранящуюся в переменной myName. Если вы снова запустите программу и вве- дете другое имя, программа поприветствует вас по новому имени. Привет, мир! Как тебя зовут? Каролина Я так рада видеть тебя, Каролина Помните, что компьютер выполняет именно то, что вы программируе- те. Компьютеры глупы и просто следуют инструкциям, которые вы им даете. Компьютеру все равно, введете ли вы свое имя, чужое или бессмысленное. Пишите что угодно. Компьютер поведет себя одинаково. Привет, мир! Как тебя зовут? |