Скачать презентацию Программирование на Python е Введение в информатику Глава 2 Скачать презентацию Программирование на Python е Введение в информатику Глава 2

Глава 2 Написание простых программ.ppt

  • Количество слайдов: 47

Программирование на Python’е: Введение в информатику Глава 2 Написание простых программ Python Programming, 2/e Программирование на Python’е: Введение в информатику Глава 2 Написание простых программ Python Programming, 2/e 1

Задачи Понимать написанные и уметь писать на языке Python: n операторы, выводящие данные на Задачи Понимать написанные и уметь писать на языке Python: n операторы, выводящие данные на экран, n операторы, присваивающие значения переменным, n операторы, получающие численные данные, вводимые с клавиатуры, n операторы циклов со счетчиком повторений Python Programming, 2/e 2

Процесс разработки программного обеспечения Процесс создания большой программы обычно разбивают на этапы в соответствии Процесс разработки программного обеспечения Процесс создания большой программы обычно разбивают на этапы в соответствии с типом данных, получаемых на каждом этапе. Python Programming, 2/e 3

Процесс разработки программного обеспечения n Анализ проблемы Точное представление проблемы, которую нужно решить. Попытайтесь Процесс разработки программного обеспечения n Анализ проблемы Точное представление проблемы, которую нужно решить. Попытайтесь разобраться в проблеме настолько, насколько это возможно. Python Programming, 2/e 4

Процесс разработки программного обеспечения n Определение технических характеристик (спецификаций) Точно опишите, что ваша программа Процесс разработки программного обеспечения n Определение технических характеристик (спецификаций) Точно опишите, что ваша программа будет делать. n n Не беспокойтесь о том как программа будет работать, а только что она будет делать. Включите описание ввода вывода и того, как они связаны друг с другом. Python Programming, 2/e 5

Процесс разработки программного обеспечения n Создание модели программы n n n Формулируем общую структуру Процесс разработки программного обеспечения n Создание модели программы n n n Формулируем общую структуру программы. Далее должен быть решен вопрос как программа будет работать. Вы должны выбрать из имеющихся или разработать свой собственный алгоритм, который удовлетворит все спецификации. Python Programming, 2/e 6

Процесс разработки программного обеспечения n Осуществление модели на компьютере n n Переведите модель на Процесс разработки программного обеспечения n Осуществление модели на компьютере n n Переведите модель на язык компьютера. В этом курсе для перевода на язык компьютерамы используем язык Python Programming, 2/e 7

Процесс разработки программного обеспечения n Тестирование/отладка программы n n n Проверьте работает ли ваша Процесс разработки программного обеспечения n Тестирование/отладка программы n n n Проверьте работает ли ваша программа. Если есть ошибки (баги), то их нужно найти и исправить. Этот процесс называется отладкой (debugging). Ваша цель найти ошибки, поэтому перепробуйте всё, что может “сломать” вашу программу! Python Programming, 2/e 8

Процесс разработки программного обеспечения n Сопровождение программы n n Продолжайте разработку программы в соответствии Процесс разработки программного обеспечения n Сопровождение программы n n Продолжайте разработку программы в соответствии с нуждами ваших пользователей. На практике разработка большинства программ никогда полностью не заканчиваются – они развиваются во времени. Python Programming, 2/e 9

Пример программы: «Перевод температуры» n n Анализ – температура дана по Цельсию, пользователь хочет Пример программы: «Перевод температуры» n n Анализ – температура дана по Цельсию, пользователь хочет значение температуры по Фаренгейту. Спецификации n n n Ввод – температура по Цельсию (input) Вывод – температура по Фаренгейту (output) output = (9/5)*(input) + 32 Python Programming, 2/e 10

Пример программы: «Перевод температуры» n Модель n n Ввод, Преобразование, Вывод (ВПВ) Просим пользователя Пример программы: «Перевод температуры» n Модель n n Ввод, Преобразование, Вывод (ВПВ) Просим пользователя ввести данные (температуру по Цельсию) Преобразуем температуру к Фаренгейту по формуле F = 9/5(C) + 32 Выводим результат на экран Python Programming, 2/e 11

Пример программы: «Перевод температуры» n До того как начать кодировать, давайте напишем грубый набросок Пример программы: «Перевод температуры» n До того как начать кодировать, давайте напишем грубый набросок программы на псевдокоде n n Псевдокод это точный русский язык, который описывает что делает программа шаг за шагом. Используя псевдокод, мы концентрируемся скорее на алгоритме, чем на языке программирования. Python Programming, 2/e 12

Пример программы: «Перевод температуры» n Псевдокод: n n Вводим значение температуры в градусах Цельсия Пример программы: «Перевод температуры» n Псевдокод: n n Вводим значение температуры в градусах Цельсия (называем значение celsius) Вычисляем значение переменной fahrenheit как (9/5)*celsius+32 Выводим значение переменной fahrenheit Теперь всё это нужно перевести на язык Python Programming, 2/e 13

Пример программы: «Перевод температуры» #convert. py # Программа преобразует температуру по Цельсию в # Пример программы: «Перевод температуры» #convert. py # Программа преобразует температуру по Цельсию в # температуру по Фаренгейту def main(): celsius = eval(input("Какова температура по Цельсию? ")) fahrenheit = (9/5) * celsius + 32 print("Температура равна", fahrenheit, " градусов по Фаренгейту. ") main() Python Programming, 2/e 14

Пример программы: «Перевод температуры» Если мы написали программу, то её нужно протестировать! >>> Какова Пример программы: «Перевод температуры» Если мы написали программу, то её нужно протестировать! >>> Какова температура по Цельсию? " 0 Температура равна 32. 0 градусов по Фаренгейту. >>> main() Какова температура по Цельсию? 100 Температура равна 212. 0 градусов по Фаренгейту. >>> main() Какова температура по Цельсию? " -40 Температура равна -40. 0 градусов по Фаренгейту. >>> Python Programming, 2/e 15

Элементы программ n Имена переменных n n Имена даются переменным (celsius, fahrenheit), модулям (main, Элементы программ n Имена переменных n n Имена даются переменным (celsius, fahrenheit), модулям (main, convert), и т. д. Эти имена называются идентификаторами Каждый идентификатор должен начинаться с буквы или подчеркивания (“_”), после чего следует последовательность букв цифр и подчеркиваний. Идентификаторы чувствительны к регистру. Python Programming, 2/e 16

Элементы программ n Ниже перечислены попарно различные правильные имена n X n Celsius n Элементы программ n Ниже перечислены попарно различные правильные имена n X n Celsius n Spam n sp. Am n Spam_and_Eggs n Spam_And_Eggs Python Programming, 2/e 17

Элементы программ n n n Некоторые идентификаторы являются частью языка Python. Эти идентификаторы известны Элементы программ n n n Некоторые идентификаторы являются частью языка Python. Эти идентификаторы известны как ключевые (зарезервированные) слова. Это означает, что вам нельзя их использовать в качестве имён переменных в ваших программах. Примеры: слова and, del, for, is, raise, assert, elif, in, print, etc. Полный список, см. в таблице 2. 1 Python Programming, 2/e 18

Элементы программ n Выражения n n n Фрагменты кода, которые выдают или вычисляют значения Элементы программ n Выражения n n n Фрагменты кода, которые выдают или вычисляют значения новых данных называются выражениями. Литералы используются, чтобы представлять фиксированные значения, например, 3. 9, 1, 1. 0 Простые идентификаторы могут также быть выражениями. Python Programming, 2/e 19

Элементы программ >>> x = 5 >>> x 5 >>> print(x) 5 >>> print(spam) Элементы программ >>> x = 5 >>> x 5 >>> print(x) 5 >>> print(spam) Traceback (most recent call last): File "", line 1, in -toplevelprint spam Name. Error: name 'spam' is not defined >>> n Цепочка Name. Error обозначает ошибку, которая возникает, если вы пытаетесь использовать переменную, которой не было присвоено значение. Python Programming, 2/e 20

Элементы программ n n n Простые выражения можно соединять, используя операции. Арифметические операции +, Элементы программ n n n Простые выражения можно соединять, используя операции. Арифметические операции +, -, *, /, ** Пробелы не имеют никакого значения в выражениях. Применимы законы математического приоритета. ((x 1 – x 2) / 2*n) + (spam / k**3) Python Programming, 2/e 21

Элементы программ n Операторы вывода n n n Оператор print может напечатать любое количество Элементы программ n Операторы вывода n n n Оператор print может напечатать любое количество выражений. Последовательные операторы print выводят данные на различных строках. Пустой оператор print напечатает пустую строку. Python Programming, 2/e 22

Элементы программ print(3+4) print(3, 4, end= Элементы программ print(3+4) print(3, 4, end=" "), print(3 + 4) 7 347 print("Ответ равен", 3+4) Ответ равен 7 3 4 7 (end=" " отменяет переход на новую строку ) Python Programming, 2/e 23

Операторы присваивания n n n Простое присваивание <переменная> = <выр> <переменная> задаётся идентификатором, <выр> Операторы присваивания n n n Простое присваивание <переменная> = <выр> <переменная> задаётся идентификатором, <выр> обозначает выражение Выражение в правой части присваивания вычисляется, полученное значение связывается с переменной, названной в левой части присваивания. Python Programming, 2/e 24

Операторы присваивания n n n x = 3. 9 * x * (1 -x) Операторы присваивания n n n x = 3. 9 * x * (1 -x) fahrenheit = 9/5 * celsius + 32 x=5 Python Programming, 2/e 25

Операторы присваивания Переменным можно переприсваивать значения столько раз сколько захочется. >>> 0 >>> 7 Операторы присваивания Переменным можно переприсваивать значения столько раз сколько захочется. >>> 0 >>> 7 >>> 8 >>> my. Var = 0 my. Var = 7 my. Var = my. Var + 1 my. Var Python Programming, 2/e 26

Операторы присваивания n n Переменные похожи на ящики, в которые мы можем помещать значения. Операторы присваивания n n Переменные похожи на ящики, в которые мы можем помещать значения. Когда переменная изменяется, старое значение стирается, а новое записывается. Python Programming, 2/e 27

Операторы присваивания n n n Технически эта модель присваивания является упрощением для Python’а. Python Операторы присваивания n n n Технически эта модель присваивания является упрощением для Python’а. Python не переписывает области памяти (ящики). Присваивание переменной больше похоже на приклеивание клеящейся наклейки на значение говорящей: «это X» . Python Programming, 2/e 28

Присваивание ввода n n Цель оператора ввода получить ввод от пользователя и занести его Присваивание ввода n n Цель оператора ввода получить ввод от пользователя и занести его в переменную. <переменная> = eval(input(<подсказка>)) Python Programming, 2/e 29

Присваивание ввода n n Во-первых, печатается приглашение Оператор input затем ждёт ввод пользователя и Присваивание ввода n n Во-первых, печатается приглашение Оператор input затем ждёт ввод пользователя и нажатия Выражение, которое было введено, вычисляется, преобразуется из цепочки символов в значение (число). Значение присваивается переменной. Python Programming, 2/e 30

Одновременное присваивание n n Несколько значений можно вычислить одновременно <пер>, … = <выр>, … Одновременное присваивание n n Несколько значений можно вычислить одновременно <пер>, … = <выр>, … Вычисляем значения выражений в правой части и присваиваем их соответствующим переменным в левой части оператора присваивания. Python Programming, 2/e 31

Одновременное присваивание n n sum, diff = x+y, x-y Как это использовать, чтобы поменять Одновременное присваивание n n sum, diff = x+y, x-y Как это использовать, чтобы поменять значения x и y? n n Почему не работает набор операторов? x = y y = x Можно воспользоваться временной переменной… Python Programming, 2/e 32

Одновременное присваивание n С помощью Python’а поменять значения двух переменных очень легко! n x, Одновременное присваивание n С помощью Python’а поменять значения двух переменных очень легко! n x, y = y, x >>> >>> 34 >>> 43 x=3 y=4 print(x, y) x, y = y, x print(x, y) Python Programming, 2/e 33

Одновременное присваивание n n Можно использовать ту же идею, чтобы ввести значения нескольким переменным Одновременное присваивание n n Можно использовать ту же идею, чтобы ввести значения нескольким переменным из одного оператора ввода! Применяйте запятые, чтобы отделять вводимые данные def spamneggs(): spam, eggs = eval(input("Введите количество ломтиков тушенки, после чего число яиц: ")) print ("Вы заказали", eggs, "яиц и", spam, "ломтиков тушенки. Упс!") >>> spamneggs() Введите количество ломтиков тушенки, после чего число яиц : 3, 2 Вы заказали 2 яиц 3 ломтиков тушенки. Упс! Python Programming, 2/e 34

Определённые циклы n n n Определённый цикл выполняется определённое число раз, то есть когда Определённые циклы n n n Определённый цикл выполняется определённое число раз, то есть когда Python начинает цикл он точно знает сколько итераций нужно сделать. for <пер> in <последовательность>: <тело цикла> Начало и окончание тела показывается отступами. Python Programming, 2/e 35

Определённые циклы for <пер> in <последовательность>: <тело цикла> Переменная после for называется индексом цикла. Определённые циклы for <пер> in <последовательность>: <тело цикла> Переменная после for называется индексом цикла. Она принимает каждое значение из последовательности. Python Programming, 2/e 36

Определённые циклы >>> for i in [0, 1, 2, 3]: print (i) 0 1 Определённые циклы >>> for i in [0, 1, 2, 3]: print (i) 0 1 2 3 >>> for odd in [1, 3, 5, 7]: print(odd*odd) 1 9 25 49 >>> Python Programming, 2/e 37

Определённые циклы n Что делает range(10) в программе chaos. py? >>> list(range(10)) [0, 1, Определённые циклы n Что делает range(10) в программе chaos. py? >>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] n range это встроенная функция Python’а, которая порождает последовательность 10 чисел, начиная с 0. n list это встроенная функция Python’а, которая преобразует последовательность в явный список n Тело цикла выполняется 10 раз. Python Programming, 2/e 38

Определённые циклы Цикл for изменяет течение выполнения программы, поэтому называется управляющей структурой Python Programming, Определённые циклы Цикл for изменяет течение выполнения программы, поэтому называется управляющей структурой Python Programming, 2/e 39

Пример программы: «Будущее значение» n Анализ n n Деньги, положенные на банковский счет приносят Пример программы: «Будущее значение» n Анализ n n Деньги, положенные на банковский счет приносят проценты. Сколько будет на счету через 10 лет? Ввод: вклад, проценты Вывод: величина вклада через 10 лет Python Programming, 2/e 40

Пример программы: «Будущее значение» n Спецификации n n n Пользователь вводит начальный вклад и Пример программы: «Будущее значение» n Спецификации n n n Пользователь вводит начальный вклад и сумму, на которую начисляются проценты Пользователь вводит учетную ставку, процентную ставку Спецификации можно представить следующим образом … Python Programming, 2/e 41

Пример программы: «Будущее значение» n n Программа Будущее значение Ввод principal Количество денег, которое Пример программы: «Будущее значение» n n Программа Будущее значение Ввод principal Количество денег, которое будет положено на счет apr Годовая процентная ставка, выраженная десятичным числом. Вывод Деньги на счете через 10 лет Связь Значение на счете через год задаётся формулой principal * (1 + apr). Процедуру увеличения нужно проделать 10 раз. Python Programming, 2/e 42

Пример программы: «Будущее значение» Модель Печатаем введение Вводим первоначальный вклад (principal) Вводим годовую учетную Пример программы: «Будущее значение» Модель Печатаем введение Вводим первоначальный вклад (principal) Вводим годовую учетную ставку (apr) n Повторяем 10 раз: principal = principal * (1 + apr) Выводим значение переменной principal Python Programming, 2/e 43

Пример программы: «Будущее значение» n Реализация n n Каждую строку переводим в одну строку Пример программы: «Будущее значение» n Реализация n n Каждую строку переводим в одну строку на языке Python (в данном случае) Печатаем введение print ("Эта программа вычисляет будущее") print ("значение от 10 -летней инвестиции. ") n Вводим количество основного вклада principal = eval(input("Введите начальный вклад: ")) Python Programming, 2/e 44

Пример программы: «Будущее значение» n n Введите годовую учетную ставку apr = eval(input( Пример программы: «Будущее значение» n n Введите годовую учетную ставку apr = eval(input("Введите годовую учетную ставку: ")) Повторяем 10 раз: for i in range(10): Вычисляем principal = principal * (1 + apr) Выводим значение переменной principal после выполнения цикла print ("Значение вклада через 10 лет равно: ", principal) Python Programming, 2/e 45

Пример программы: «Будущее значение» # futval. py # Программа вычисляет значение вклада # через Пример программы: «Будущее значение» # futval. py # Программа вычисляет значение вклада # через 10 лет в будущем def main(): print( «Эта программа вычисляет будущее значение 10 -летней инвестиции. ") principal = eval(input("Введите значение вклада: ")) apr = eval(input("Введите годовую учетную ставку: ")) for i in range(10): principal = principal * (1 + apr) print ("Вклад через 10 лет будет равен: ", principal) main() Python Programming, 2/e 46

Пример программы: «Будущее значение» >>> main() Эта программа вычисляет будущее значение 10 -летней инвестиции. Пример программы: «Будущее значение» >>> main() Эта программа вычисляет будущее значение 10 -летней инвестиции. Введите значение вклада: 100 Введите годовую учетную ставку: . 03 Вклад через 10 лет будет равен: 134. 391637934 >>> main() Эта программа вычисляет будущее значение 10 -летней инвестиции. Введите значение вклада : 100 Введите годовую учетную ставку : . 10 Вклад через 10 лет будет равен : 259. 37424601 Python Programming, 2/e 47