Шуман Х. - Python для детей - 2019. # Startwerte festlegen Red (255,0,0)
Скачать 5.95 Mb.
|
Глава Твои первые шаги в программировании 1 28 Важно, чтобы вместо C:\Python ты указал ту папку, в которую установил Python. В противном случае ярлык не будет рабо- тать. Нажми кнопку Далее (Next). Присвой новому ярлыку на рабочем столе имя IDLE (Python), как показано на рисунке ниже. Нажми кнопку Готово (Finish). Рабочая среда IDLE 29 С этого момента ты сможешь запускать редактор Python прямо с рабочего стола, дважды щелкнув по ярлыку IDLE (Python). После запуска программы IDLE ты увидишь окно, показан- ное на рис. 1.12. Рис. 1.12.Интерфейс IDLE Сама программа напоминает и в то же время существенно отличается от предыдущего интерпретатора Python. Кро- ме того что вместо черного фона здесь мы будем работать в области белого цвета, тут также есть и строка меню. И те- перь вся эта программа будет называться оболочкой. IDLE – это аббревиатура названия Integrated Development and Learning Environment. То есть интегрированная среда разработки и обучения, которая необходима для программирования на языке Python. Мы также можем вводить команды на языке Python в этой среде и получим те же результаты, что и в предыдущем окне (в «черном» интерфейсе Python) (рис. 1.13): Глава Твои первые шаги в программировании 1 30 Рис. 1.13.Ввод команд в IDLE Теперь среда разработки выглядит немного более красоч- ной. Здесь команды наподобие print() и input(), а также вывод отображаются цветным шрифтом (это ведь удобно!). ¾ Попробуй сам, набрав строки примера в окне IDLE. Работа с PY-файлами Как же получается так, что всего лишь несколько строк становятся целой программой, которую можно загружать и выполнять снова и снова? ¾ Щелкни мышью по пункту File (Файл) в строке меню, а затем выбери пункт New file (Создать файл) (или на- жми сочетание клавиш Ctrl+N) (рис. 1.14). Рис. 1.14.Создание файла Работа с PYфайлами 31 Эта команда, только что выполненная тобой, создаст новый документ с именем Untitled. В этом окне тоже есть строка меню (рис. 1.15). Рис. 1.15.Новый файл Здесь мы сможем видеть нашу программу, не выполняя ни одной строки непосредственно в интерпретаторе Python. ¾ Введи следующие строки: Text = "Привет! Кто ты?" print(Text) Name = input() print(Name) ¾ Щелкни мышью по пункту File (Файл) в строке меню, а затем выбери пункт Save as (Сохранить как) (рис. 1.16). Рис. 1.16.Команда сохранения файла Глава Твои первые шаги в программировании 1 32 ¾ В диалоговом окне введи имя для этой программы, ка- кое захочешь. Сама же программа автоматически доба- вит расширение PY как идентификатор программ для интерпретатора Python, если ты его сам не укажешь в имени (рис. 1.17). Нажми кнопку Сохранить (Save). Рис. 1.17.Сохранение файла Я создал подпапку под названием Projects в каталоге Python и со- хранил в ней все свои проекты Python. ¾ Чтобы запустить программу, выбери команду меню Run ⇒ Run Module (Выполнение ⇒ Выполнить мо- дуль). Или нажми клавишу F5 (рис. 1.18). Рис. 1.18.Запуск программы Ты вернешься к окну с приветствием «Привет! Кто ты?». ¾ Теперь введи свое имя и подтверди ввод с помощью клавиши Enter. Результат будет выглядеть так, как по- казано на рис. 1.19. Работа с PYфайлами 33 Рис. 1.19.Запущенная программа Если сейчас ты закроешь это окно на своем компьютере, файл данной программы все равно будет сохранен. Тебе лишь нужно будет заново его открыть. ¾ Щелкни мышью по пункту File (Файл) в строке меню, а затем выбери пункт Open (Открыть) (или нажми со- четание клавиш Ctrl+O) (рис. 1.20). Рис. 1.20.Команда открытия файла ¾ В диалоговом окне выбери соответствующий файл (в папке Python\Projects) (рис. 1.21). Глава Твои первые шаги в программировании 1 34 Рис. 1.21.Открытие файла ¾ Нажми кнопку Открыть (Open). Откроется окно редак- тора, и твоя первая программа будет готова к запуску. В Python программу также называют скриптом. Эксперименты с исходным кодом Теперь давай более подробно рассмотрим исходный код, так как именно так называется последовательность этих строк: Text = "Привет! Кто ты?" print(Text) Name = input() print(Name) Здесь есть две переменные, Text и Name. В каждой из них сохраняется последовательность символов, называемая строкой. Кроме того, здесь используются две функции: print() Отвечает за вывод чисел и текста на экран input() Отвечает за ввод чисел и текста с помощью клавиатуры Эксперименты с исходным кодом 35 Как видишь, функции всегда имеют круглые скобки, в ко- торых что-то может быть написано, но они также могут быть и пустыми, в зависимости от функции и ее примене- ния. И если ты посмотришь немного внимательнее на них, то наверняка заметишь, что print() выглядит как инструк- ция, а input() – как присваивание. Таким образом, значение присваивается переменной Name с помощью этой функции. Формула Переменная = Я использую здесь термин «формула», потому что в правой части инструкции, помимо функций, можно использовать что-то вроде этого: Amount = 1 + 2 * 3 Text = "Добрый вечер, " + Name Обрати внимание, что символ плюс (+) играет двойную роль: по- зволяет складывать числа и конкатенировать (соединять) строки. Теперь, когда ты знаешь, как написать несколько про- граммных строк и сохранить их в файл, давай продолжим наш первый пример: Text = "Привет! Кто ты?" print(Text) Name = input() Text = "Так значит, ты - " + Name print(Text) print("А как у тебя дела?") Answer = input() print("Я рад, что у тебя дела " + Answer); Как видишь, я не использую переменные на каждом шагу, на самом деле это необходимо, только если ты захочешь, чтобы компьютер что-то запомнил. В нашем примере это касается только данных, которые мы будем сами вводить. Соответственно, наша программа может выглядеть так: print("Привет! Кто ты?") Name = input() print("Так значит, ты - " + Name) print("А как у тебя дела?") Answer = input() print("Я рад, что у тебя дела " + Answer); Глава Твои первые шаги в программировании 1 36 ¾ Введи предыдущий исходный код и выбери команду меню Run ⇒ Run Module (Выполнение ⇒ Выполнить модуль) (или нажми клавишу F5). Затем измени код второй версией. Запусти программу снова. Каждый раз, когда ты вносишь изменения, тебе будет пред- ложено сохранить исходный код перед запуском програм- мы (рис. 1.22): Рис. 1.22.Диалоговое окно с предупреждением ¾ Нажми кнопку ОК. Вот как будет выглядеть последняя версия нашей програм- мы в окне интерпретатора Python (рис. 1.23): Рис. 1.23.Результат выполнения программы Как видишь, интерпретатор Python читает код по строкам: в каж- дой строке есть оператор (даже знак равенства – это оператор присваивания). Поэтому ты не можешь просто перенести текст на две строки. Если это все же необходимо, в конце строки нужно указывать так называемый «обратный слеш» (\). Подведение итогов 37 Выход из Python Чтобы выйти из среды разработки Python, все открытые ранее окна должны быть, естественно, закрыты: ¾ Это можно сделать либо с помощью команды меню File ⇒ Exit (Файл ⇒ Выход), либо ты можешь щелкнуть по маленькому крестику ( ×) в правом верхнем углу каж- дого открытого окна. Или использовать сочетание кла- виш Ctrl+Q. Если ты ранее что-то изменил в коде и не сохранил файл, то увидишь окно, показанное на рис. 1.24. Рис. 1.24.Предупреждение о необходимости сохранения программы ¾ В зависимости от ситуации нажимай нужную кнопку. (Нажав кнопку Отмена (Cancel), ты вернешься обратно в окно редактора.) Подведение итогов С нашим первым проектом на языке программирования Python у тебя уже получилось кое-чего достичь. Давай-ка посмотрим, что ты узнал в этой главе. Прежде всего сущест- вует несколько команд, связанных с программой IDLE: Глава Твои первые шаги в программировании 1 38 Запуск IDLE Дважды щелкни мышью по ярлыку IDLE (Python) Создать файл Выбери команду меню File ⇒ New File (Файл ⇒ Создать файл) Сохранить файл Выбери команду меню File ⇒ Save (Файл ⇒ Сохранить) Сохранить файл как… Выбери команду меню File ⇒ Save as (Файл ⇒ Сохранить как) Открыть файл Выбери команду меню File ⇒ Open (Файл ⇒ Открыть) Выполнить программу Выбери команду меню Run ⇒ Run Module (Выполнение ⇒ Выполнить модуль) Вызвать справочную систему Выполни команду help() (используй команду quit для выхода) Завершить работу Python Выбери команду меню File ⇒ Exit (Файл ⇒ Выход) А еще ты узнал кое-что из словаря языка Python: print() Функция, отвечающая за вывод чисел и текста на экран input() Функция, отвечающая за ввод чисел и текста с помощью клавиатуры = Оператор присваивания + Оператор сложения/конкатенации \ Перенос строк (обратный слеш) Несколько контрольных вопросов... 1. Какие функции отвечают за ввод и вывод информации? 2. Какая разница между компилятором и интерпретато- ром? 3. Инструкция присвоения – это то же самое, что и урав- нение? ...а задач пока нет! 39 2 Условные конструкции Только что тебе удалось немного «поговорить» со своим компьютером. Мне бы хотелось сказать это как-нибудь иначе, но выглядит это действительно глупо: твой компью- тер делает только то, что говорит ему программа. Однако это не означает, что ты не сможешь довести компьютер до верного понимания и реакции. В этой главе ты узнаешь: что такое условные конструкции; как сравнить значения переменных; как использовать конструкции if, else и elif; для чего преобразуются типы данных; как использовать функции int() и float(); как обрабатывать ошибки с помощью инструкций try и except. Конструкция if В предыдущей главе твоя небольшая программа спрашива- ла о твоих делах. Если ты запустишь эту программу несколь- ко раз и введешь разные ответы, ты поймешь, насколько Глава Условные конструкции 2 40 нудным может быть такой разговор. Если же отвечать хорошо и плохо, твой оппонент будет выглядеть безразличным: Я рад, что у тебя дела хорошо Я рад, что у тебя дела плохо Компьютер просто повторяет то, что ты ему говоришь. Если же ты ответишь вместо слова хорошо, например, грустно се годня или просто наберешь несколько символов (например, +*!?фыва ), тогда его реакция может выглядеть так (рис. 2.1): Я рад, что у тебя дела грустно сегодня Я рад, что у тебя дела +*!?фыва Рис. 2.1.Ответы компьютера Итак, мы только что показали компьютеру, что надо пра- вильно реагировать на такие ответы, как хорошо или плохо. Поэтому он не должен просто говорить: Я рад, что у тебя дела... , а наоборот – подбирать подходящую формулиров- ку. Таким образом, его реакция может быть, например, та- кой: Твой ответ Ответ компьютера хорошо Это радует! плохо Это огорчает! Но как мы можем донести такое поведение до компьютера? В Python должно же быть что-то вроде понятия «если». Пе- реведем это на английский (⇒ hello1): Конструкция if 41 if Answer == "хорошо" : print("Это радует!") if Answer == "плохо" : print("Это огорчает!") Ну как, стало интереснее? Содержание самого ответа срав- нивается с текстом твоего ответа – хорошо или плохо. Если он совпадает, тут же выдается соответствующий ответ от компью тера. Важная особенность программирования на языке Python, кото- рую, к сожалению, можно легко упустить из виду: строка print ниже строки if имеет отступ. Для создания отступа нужно исполь- зовать пробелы (и никаких символов табуляции). Это необходимо для того, чтобы интерпретатор Python понимал, что строки print являются частью конструкции if. Если кто-то забывает о них или неправильно их вставляет (или слишком мало, или слишком мно- го), появляется одно из таких сообщений об ошибке: В зависимости от ситуации сообщение появляется либо непо- средственно в окне оболочки, либо в виде диалогового окна. Давай взглянем на оператор, который следует за именем переменной: в отличие от оператора присваивания (=), символ равенства указывается в этом случае дважды (==): Answer == "хорошо" Answer == "плохо" Это оператор сравнения, который проверяет, совпадают ли значения с обеих сторон. На самом деле очень легко можно Глава Условные конструкции 2 42 забыть указать символ равенства дважды и увидеть сооб- щение об ошибке, показанное на рис. 2.2. Рис. 2.2.Сообщение об ошибке – неправильный синтаксис ¾ Теперь открой файл примера из предыдущей главы и измени исходный код, как обсуждается на этом уроке. Не забудь про отступы! Сохрани код под новым именем (например, hello1.py). ¾ Затем запусти программу; введи ответ «хорошо» в пер- вый раз, «плохо» во второй и посмотри, что произойдет. В соответствии с твоим ответом (как и должно быть) компью тер будет выдавать подходящий текст (рис. 2.3). Рис. 2.3.Измененная версия программы из главы 1 Конструкция if 43 Давай подробнее рассмотрим структуру, которая, кажется, дарит твоему компьютеру немного человеческого состра- дания и сочувствия. Ответ Да Нет хорошо Это радует! (далее в программе) плохо Это огорчает! (далее в программе) В общем, это означает: (Только) если выполнено конкретное условие, компьютер испол- няет блок команд, если не выполнено – не исполняет. БлокИнструкций Условие: if Помни, что за условием всегда должно следовать двоеточие (:)! Кроме того, блок инструкций должен сопровождаться отступом (пробелами). Условие здесь такое: Answer == "хорошо" : И следующее: Answer == "плохо" В конструкции имеются инструкции, в нашем примере та- кие: print("Это радует!") и print("Это огорчает!") Все это называется конструкцией или условной конструк цией, так как компьютер выбирает действие, исходя из со- Глава Условные конструкции 2 44 блюдения условия. Здесь его действие заключается в ответе тебе. Поэтому инструкции print являются частью конструк- ции if. ¾ Теперь попробуй запустить программу с кодом без про- белов. Если исходный код выглядит следующим образом: if Answer == "хорошо" : print("Это радует!") if Answer == "плохо" : print("Это огорчает!") В этом случае Python не разберется, что здесь написано, и не пой мет, что в коде есть конструкции if. В начале строки обязательно должен быть, по крайней мере, один пробел. Когда ты вернешь пробелы в свой код, твоя программа снова заработает! Конструкция if else ¾ Попробуй также изменить эту программу несколько раз с совсем другими словами в ответ на вопрос компью- тера, кроме «хорошо» или «плохо». (Кстати, это также может быть и вариант «пучком», например.) Поскольку компьютер не имеет инструкций насчет таких ответов, он и не сможет дать тебе ответ. Поэтому на экран ничего не выведется. Для решения проблемы у нас есть такая команда, как else: Конструкция if else 45 if Answer == "хорошо" : print("Это радует!") else : print("Я не понимаю ...") Команда else означает «иначе». Это приводит нас к созда- нию новой условной конструкции с двумя альтернативны- ми инструкциями. БлокИнструкций2 БлокИнструкций1 Условие: if else: Для нас с тобой это означает: Если выполняется определенное условие, компьютер исполняет определенные инструкции (т. е. БлокИнструкций1). ЕСЛИ же не вы- полняется (т. е. else), компьютеру придется исполнять другой блок инструкций (БлокИнструкций2). Условие: Answer == "хорошо" И в первом блоке инструкций находится эта строка: print("Это радует!") Компьютер выполняет эту инструкцию (выводит текст «Это радует!»), если в ответ на его вопрос ты ответил «хорошо», т. е. выполнил условие (==). Если ты отвечаешь что-то дру- гое (=), выполняется второй блок инструкций – строка: print("Я не понимаю ...") Как и в случае простой инструкции if, мы говорим здесь об условной конструкции. Без команды else программа бы выглядела так: Глава Условные конструкции 2 46 If Answer == "хорошо" : print("Это радует!") if Answer != "хорошо" : print("Я не понимаю ...") Второе условие в точности противоположно первому: Answer != "хорошо" Вместо двойного знака равенства (==) используется комби- нация восклицательного знака и знака равно (!=). ¾ В приведенном выше коде замени строку if Answer == "плохо" конструкции строкой с ключевым словом else. Затем запусти свою программу. Результат не совсем хорош: теперь компьютер знает толь- ко один подходящий ответ на слово хорошо! Я согласен, предыдущее решение было чуть лучше, так как тогда твой компью тер также отвечал и на слово плохо. Как насчет такого решения (⇒ hello2): if Answer == "хорошо" : print("Это радует!") if Answer == "плохо" : print("Это огорчает!") else : print("Я не понимаю ...") Ну что, выглядит неплохо. Теперь оба условия снова оцени- ваются, и если они не подходят для ответа, выводится текст «Я не понимаю...». Нравится? ¾ Измени исходный код программы и запусти ее. Если ввести слово плохо, программа работает прекрасно, но с ответом хорошо я получаю результат, показанный на рис. 2.4. Конструкция if else 47 Рис. 2.4.Проблема с отображением двух строк текста Оператор else срабатывает только вместе с последней конст рукцией if. И как же нам добиться, чтобы этот опе- ратор срабатывал и с первой конструкцией? Ты, наверное, уже подумал о чем-то вроде этого: if Answer == "хорошо" : print("Это радует!") else : print("Я не понимаю ...") if Answer == "плохо" : print("Это огорчает!") else : print("Я не понимаю ...") Но если честно, мне эта идея не нравится. Тем более что я представляю, насколько сложным было бы, если бы я за- хотел оценить еще несколько ответов, кроме «хорошо» и «плохо». Но хорошее решение проблемы не так уж и слож- но. Вот весь необходимый код (⇒ hello2): print("Привет! Кто ты?") Name = input() print("Так значит, ты - " + Name) print("А как у тебя дела?") Answer = input() if Answer == "хорошо" : print("Это радует!") elif Answer == "плохо" : print("Это огорчает!") else : print("Я не понимаю ...") |