1 / 41

Основы программирования Часть 1. Введение в Питон

Основы программирования Часть 1. Введение в Питон. Бондарев Владимир Михайлович, проф. кафедры программной инженерии. Переменные, присваивание, условная команда. Лекция 2.

pennie
Download Presentation

Основы программирования Часть 1. Введение в Питон

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Основы программированияЧасть 1. Введение в Питон Бондарев Владимир Михайлович, проф.кафедры программной инженерии

  2. Переменные, присваивание, условная команда Лекция 2

  3. Питон – расширяемый интерпретируемый язык, включивший в себя много ценного из ABC, Modula-3, C, C++, Smalltalk, Lisp, Fortran, Java. ГвидованРоссум разработал Питон в 1991 г. в свободное от работы время. Теперь он BDFL Питона.

  4. Возможности языка Python C# C++ Время Почему Питон? Современный. Интенсивно развивается. Императивный, функциональный и объектный. Работает на всех программных платформах: Windows, UNUX, iOS. Имеет низкий порог вхождения. 2 мес

  5. Учебники по Питону • http://younglinux.info/python.php - Питон для начинающих • Саммерфилд М. Программирование на Python 3. Подробное руководство. - Пер. с англ. - СПб.: Символ-Плюс, 2009. - 608 с, ил. • Марк Лутц - Изучаем Python - 4-е изд – 2011 – 1272 с. – подробно, но длинновато • Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач и мн.др. Язык программирования Python. / 2001 — 454 c. – первоисточник, похож на спецификацию языка • Прохоренок Н. А. Python 3 и PyQt. Разработка приложений. – СПб.: БХВ-Петербург, 2012.-704 с. – подробно и понятно про PyQt.

  6. Как установить • http://www.python.org/ - отсюда скачать дистрибутив (python-3.3.2.msi) для Windows. • Запустить файл python-3.3.2.msi • В меню "Allprograms" появится группа

  7. СредаразработкиIDLE

  8. Числа • Числа – основа всего. Символы, геометрические фигуры, цвета, изображения, музыка – все это числа. • Числа бывают целые, вещественные, комплексные. • Операции над числами: + - * / // % **

  9. Арифметические выражения Если экономить скобки, нужно учитывать: • приоритет операций; • ассоциативность операций. Алфавит, лексемы, выражения, предложения, тексты.

  10. Задачи В интерактивном режиме: • Получить последнюю цифру числа, взяв остаток от деления числа на 10. • Получить предпоследнюю цифру числа (разделить нацело и взять остаток). • Задан год. Определить, к какому веку он относится. vmbo.wordpress.com

  11. Переменные x = 3 y = 2 z = x + y x y z 3 2 5 Задача Даны две переменные, xи y. Обменять местами их значения. x y z Имя переменной – строка из букв и цифр, начинающаяся с буквы.

  12. Сохранение программ • Чтобы сохранить программу, ее нужно поместить в текстовый файлс расширением "py". • Чтобы изменить программу, нужно открыть файл в окне редактора – File / Open. • Чтобы выполнить программу, нужно выбрать пункт меню Run / RunModule.

  13. Условная команда • Задача: Найти минимальное из двух чисел. • Решение: ifx < y: min = x else: min = y if условие: команда1 else: команда2

  14. Другие условные команды • min = x; • if x > y: • min = y • Односторонняя • Многосторонняя • # m – баллы по международной шкале • # n - оценка по национальной шкале • ifm < 60: • n = 'неуд' • elifm < 75: • n = 'удовл' • elif m < 90: • n = 'хорошо' • else: • n = 'отлично'

  15. Логические выражения. Повторение команд Лекция 3

  16. Условия • Любая операциявырабатывает значение. • Операции сравнения вырабатывают логические значения: True или False 2 + 3 =>5 2 < 3 => True 2 > 3 => False Виды сравнений: == != < > <= >=

  17. Составные условия • Составное условие = логическое выражение. • Логические выражения строятся из логических значений (True, False) и логических операций (not, and, or). Примеры: 0 < xandx < 100 y < 0 or y > 100

  18. Логические операции not False = True not True = False False and False = False False and True = False True and False = False True and True = True False or False = False False or True = True True or False = True True or True = True False and X = False X and Y = Y and X X and not X = True True or X = True X or Y = Y or X not X or X = False

  19. Задачи • Поместить в переменную max большее из двух чисел a и b. • Поместить в переменную max большее из трех чисел a, b и c. • В переменной z находится число. Присвойте переменной w -1, если z отрицательно, 1, если z положительно и присвойте 0, если z равно нулю. • Дана переменная х. Если х кратно трем, занести в переменную y число 3. Если х кратно пяти, занести в переменную y число 5. Если х кратно пятнадцати, занести в переменную y число 15. • Даны три числа: a, b, c. Определить, можно ли их выстроить так, чтобы получилась арифметическая прогрессия. vmbo.wordpress.com

  20. Функции Лекция 4

  21. Повторение команд Задача. Напечатать числа от 1 до 9 • Задать первоначальное значение числа X. • Напечатать число X. • Увеличить число X на 1. • Если X меньше 9, перейти к пункту 2. С предусловием: • Задать первоначальное значение числа X. • Пока X меньше 10повторять: • Напечатать число X; • Увеличить X на 1.

  22. Команда while • Задать первоначальное значение числа X. • Пока X меньше 10 повторять: • Напечатать число X; • Увеличить X на 1. x = 1 while x <= 10: print (x) x = x + 1 while условие: команды

  23. Найти сумму 1 + 2 + 3 + … + n • Очистить сумму • Задать первоначальное значение числа • Пока число меньшеили равноnповторять: • Добавить число в сумму • Увеличить число на 1 • Напечатать сумму • sum = 0 n = 100 x = 1 while x <= n: sum = sum + x x = x + 1 • print (sum)

  24. НОД. Алгоритм Эвклида • Задать два числа – большее и меньшее. • Вычесть из большего числа меньшее. • Если разность равна нулю, напечатать большее число и остановиться. • Заменить большее число разностью. • Перейти к пункту 2. • Задать два числа – большее и меньшее. • Пока меньшее число больше 0 повторять: • найти остаток от деления большего числа на меньшее • меньшему присвоить остаток; • большему присвоить меньшее. • Напечатать большее.

  25. НОД. Программа на Питоне • Задать два числа – большее и меньшее. • Пока меньшее число больше 0 повторять: • найти остаток от деления большего числа на меньшее • меньшему присвоить остаток; • большему присвоить меньшее. • Напечатать большее. # m >= r >= 0 while r > 0: t = m % r m = r r = t print(m)

  26. Групповое присваивание в Питоне t = x x = y y = t x, y = y, x while r > 0: t = m % r m = r r = t while r > 0: m, r = r, m%r

  27. Задачи • Напечатать числа от 10 до 1 (функция print() ) • Найти произведение 1 * 2 * 3 * … * n = n! • Найти знакопеременную сумму 1 – 2 + 3 – 4 + 5 – 6 +… - n • Просуммировать степени двойки с 0-й по n-ю. • Найти сумму факториалов от 1! до n! . vmbo.wordpress.com

  28. Функции Лекция 5

  29. Функции Функции – команды исполнителя. • Встроенные: print(), help(), dir(), … • Математические: sin(x), cos(x), tan(x), trunc(x),… from math import * • Пользовательские – те, что определяет (объявляет) программист.

  30. Пользовательские функции Объявление функции: defgcd(m, r): """m>= r>= 0""" while r > 0: m, r = r, m % r returnm Вызов функции: >>> x = gcd(12, 8)

  31. Примеры определений функций def max(a, b): if a > b: return a else: return b def max3(a, b, c): return max(a, max(b, c)) • Переменные создаются при первом присваивании. • Функции создаются при выполнении команды def.

  32. НОД по-древнегречески «Чтобы найти общую меру двух отрезков, нужно вычесть из большего меньший и найти общую меру меньшего и полученной разности.» (Эвклид) def gcd(m, r): """m и r – целые, m > r""" if r == 0: return m return gcd(r, m % r) Рекурсия

  33. Задачи • Объявить функцию gcd3 для нахождения НОД трех чисел, gcd3(a, b, c). • Объявить функцию avg(a, b) для поиска среднего арифметического двух чисел. • Найти НОК двух чисел. НОК – наименьшее общее кратное – наименьшее из чисел, которые делятся без остатка на оба исходных числа. • Объявить функцию century(), которая получает год и возвращает соответствующий году век. Допускается отрицательный аргумент, например, год = -30, век = -1 (первый век д.н.э.) • Объявить функцию isLeap(), которая по заданному году определяет, високосный он или нет. Если високосный, возвращает True, если нет – False.

  34. Списки Лекция 6

  35. Последовательности 3 Списки– изменяемые последовательности Строки – неизменяемые послед. символов Кортежи – неизменяемые списки В Питоне есть общие инструменты для работы с любыми последовательностями – встроенные функции. Но для каждого вида последовательностей есть и специальные инструменты – методы. Метод – специальный вид функции:f(x, y, z) x.f(y, z)

  36. Списки – изменяемые последовательности [2, 3, 5, 7, 11] t = [2, 3, 5, 7, 11] t[0] = 2 t[1] = 3 t[2] = 5 t[3] = 7 t[4] = 11 t[5] – ошибка [2, [2, 3, 5, [4], 1,], [] ] – тоже список

  37. Функции для любых последовательностей • L1 + L2 • n * L L * n • len(L) • min(L) max(L) • del (L[n]) • логические: xin Lи xnotin L Распаковка последовательностей: t = [1, 2, 3]; [x, y, z] = t

  38. Уточнение модели памяти Ранее предполагалось, что переменные – это именованные ячейки памяти, а присвоение – запись значения в ячейку. x = 5 y = 'five' Но в Питоне в именованных ячейках хранятся не сами значения, а адреса других, безымянных, ячеек. А уже в этих ячейках хранятся значения. 5 'five' x y 5 'five' x y

  39. Два вида присваивания Первый вид «переменная = выражение» x = 2 + 3; x = 5; x = 'five'; x = [1,2] + [3, 4] [1,2,3,4] x Второй вид «переменная1 = переменная2» y = x y Имя yстановится синонимом имени x .

  40. Метафора стикеров x = 5 y = x Замечание. Прежняя и новая модели памяти неотличимы, если хранимые значения не изменяемые.

  41. Задачи • Распечатать список в обратном порядке.   • Задан список чисел. Объявить функцию sum(), которая просуммирует все его элементы. • Объявить функцию isPalindrome(), которая получает список и возвращает True, если он является палиндромом. В противном случае функция возвращает False. Палиндромом называется такая последовательность, которая одинаково читается в обоих направлениях, например, "НажалКабанНаБаклажан". • Объявить функцию invert(), которая получает список и возвращает новый список, в котором элементы исходного списка следуют в обратном порядке. • Объявить функцию zip(), которая получает два списка равной длины и возвращает список пар. Каждая пара является двухэлементным списком, первый элемент пары берется из первого списка, второй – из второго. zip([1,2,3], ['a', 'b', 'c']) => [[1,'a'], [2,'b'], [3,'c']]. • Убрать из числового списка все отрицательные числа.

More Related