1 / 30

Елена Владимировна Андреева, зав. каф. информатики, СУНЦ МГУ helena@1september.ru

Язык программирования PYTHON для преподавания алгоритмизации и программирования в школьном курсе информатики. Елена Владимировна Андреева, зав. каф. информатики, СУНЦ МГУ helena@1september.ru. Почему PYTHON.

cybele
Download Presentation

Елена Владимировна Андреева, зав. каф. информатики, СУНЦ МГУ helena@1september.ru

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. Язык программирования PYTHONдля преподавания алгоритмизации и программирования в школьном курсе информатики Елена Владимировна Андреева, зав. каф. информатики, СУНЦ МГУhelena@1september.ru

  2. Почему PYTHON • Python– высокоуровневый язык программирования общего назначения с акцентом на производительность разработчика и читаемость кода • Python поддерживает несколько парадигм программирования, в том числе структурное, императивное, объектно-ориентированное, функциональное • Python и подавляющее большинство библиотек к нему бесплатны и поставляются в исходных кодах. Более того, в отличие от многих открытых систем, лицензия никак не ограничивает использование Python в коммерческих разработках

  3. Философия PYTHON(import this) • Красивое лучше, чем уродливое. • Явное лучше, чем неявное. • Простое лучше, чем сложное. • Сложное лучше, чем запутанное. • Плоское лучше, чем вложенное. • Разреженное лучше, чем плотное. • Читаемость имеет значение. • Особые случаи не настолько особые, чтобы нарушать правила. • Должен существовать один — и, желательно, только один — очевидный способ сделать это. • Если реализацию сложно объяснить — идея плоха.

  4. История PYTHON • Первый релиз — 1991 год • Из С, C++ — некоторые синтаксические конструкции (создатель языка Гвидо ван Россум использовал наиболее непротиворечивые конструкции из С, чтобы не вызвать неприязнь у С-программистов) • Smalltalk — объектно-ориентированное программирование • Lisp — отдельные черты функционального программирования(lambda, map, reduce и другие); • Скриптовые языки, в том числе для web-приложений • Fortran — срезы массивов, комплексная арифметика • 2008 год — вышла версия 3.0, устраняющая многие недостатки, но не полностью совместимя с 2.х

  5. PYTHON в индустрии • Google • Apple • IBM • CERN • DreamWorks • NASA • Nokia • Яндекс

  6. PYTHON в образовании • Наибольшее распространение получил PYTHON в США • Это первый язык программирования в MIT – флагмане обучения computer scienсe в мире • PYTHON рекомендован как язык программирования для школ и первый язык программирования в университетах США • PYTHON в школах Москвы

  7. Недостатки PYTHON • PYTHON, как и другие интерпретируемые языки, имеет сравнительно невысокую скорость выполнения программ. Однако, в случае с Python этот недостаток компенсируется уменьшением времени разработки программы. В среднем, программа на Python в 2-4 раза компактнее, чем её аналог на C++ или Java • Динамическая типизация вызывает вопросы у методистов по обучению программированию • Учебники, ЕГЭ и олимпиады

  8. Первая программа • На PYTHONprint("Hello, World!") • На С++#include <iostream.h> void main() { cout << "Hello, World!" << endl; }

  9. Оператор присваивания • A = 3.14print(type(A)) #floatA = ′Hello′ print(type(A)) #str • a = b = c = 0a += 1 # a = a + 1 • с = 5//2 #int • d = 5/2 #floatb = c**2 # b = c2 • a, b = b, a

  10. Условный оператор • if 0 < x < 2: if 0 < y < 2:else:оператор • if x < 0:блок1elif x == 0:блок2else:блок3

  11. Цикл с предусловием while x != y: ……………… continue ……………… break ……………… else: ……………… ……………… ……………… ………………

  12. Цикл for for i in range(n):# i = 0, 1, …, n-1 ……………… continue ……………… break ……………… ……………… ………………

  13. Цикл for for i in range(1,n+1,2):# i = 1, 3, …, n ……………… ……………… ……………… ……………… ………………

  14. Цикл for for item in mylist:#item = mylist[0], mylist[1], … item = 0 # mylistне меняется! for iin range(n): mylist[i] = 0 # mylistменяется

  15. Списки (аналог массивов) • s = [0]*100 # создан список из 100 нулей • s = list(map(int, input().split())) • if 2 in s: del s[s.index(2)] • print(s.count(2), min(s), max(s)) • Наконец • s.sort() # сортирует список s • p = sorted(s) • # создает новый отсортированный список • s.reverse()

  16. Сортировка подсчетом массива цифр a=list(map(int,input().split())) d = [0]*10 for it in a: d[it] += 1 a = [] for i in range(10): a += [i]*d[i]

  17. Символы и коды Символ ord(c) Код chr(k)

  18. Строки: создание s1 = 'string' s2 = "That's a string \n too!" s3 = str(25)# '25' s4 = s1+s2 s5 = "" # пустая строка s6 = ":)" * 100 # 100 смайликов length = len(s6) s7 = '''длинная cтрока'''

  19. Срезы (slices) • s[a:b] = s[a] + s[a+1] + s[a+2] + … + s[b-1] (начинаем с позиции a, заканчиваем до позиции b) s[3:7] = s[3] + s[4] + s[5] + s[6] • s[a:b:c] = s[a] + s[a+c] + s[a+2c] + s[a+3c] + … (начинается с а, идем с шагом с, не доходя до позицииb) s[3:7:2] = s[3] + s[5] • s[a:b] + s[b:c] эквивалентно s[a:c]

  20. Строки – неизменяемые (immutable) объекты

  21. Функции • Описание функции defaverage(a, b, c): d = a + b + c return d/3 def average1(s): return sum(s)/len(s)

  22. Множество (set) • S = set() • S = {5, 'abc', 100} • S = set("apple") • #{'a', 'p', 'l', 'e'} • | & - ^ • S.add(x) • 5 in S • 5 not in S

  23. Словарь (dict) • D = {} или D = dict() • D = {'spam': 2, 'eggs': 3} • D = dict(zip(keyslist, valslist)) • D['eggs'] • 'eggs' in D • D.keys()#ключи • D.values()#значения • D.items() #пара (кортеж) ключ-значение • len(D)#количество сохраненных элементов • D[key] = 42 • #добавление или изменение элемента

  24. Применение словарей в С4 N = int(input()) D = dict() for i in range(N): S, n = input().split() n = int(n) if D.get(S)== None: D[S] = n else: D[S] += n b = list(D.items()) b.sort(key = lambda item: item[1], reverse = True) print(b[0][0],b[1][0],b[2][0])

  25. Питонизация ЛКШ • python мне очень понравился, он быстро учится, и писать на нем довольно легко, отчасти потому, что в нем используются отступы. Также понравилось то, что встроено много различных функций. В дальнейшем планирую писать на С++ и python. •  Питон оказался очень простым и удобным, коды написанные на питоне гораздо короче и красивее нежели на том же самом паскале. Да и вообще к хорошему быстро привыкаешь. Теперь не охота писать вообще ни на чем, кроме питона. • Я буду писать на питоне, потому что он очень прост. Если я придумал решение задачи, мне не нужно думать как его реализовать, в питоне мне нужно просто его написать. Зачастую, при разработке программ на паскале, приходится думать как написать простые по задачам процедуры.

  26. Полезные ссылки informatics.mccme.ru

  27. Список литературы • Информатика 2/2012 • Н.Прохоренок “PYTHON 3 и PyQt” • Остальную литературу можно найти на http://ru.wikipedia.org/wiki/Python

  28. Дальнейшие планы • Создание учебника на основе нового образовательного стандарта по информатике для основной школы • Поддержка на олимпиадах • Компьютерное ЕГЭ • ? Курсы повышения квалификации • ? Изжить Бейсик 

  29. Пробуйте, вам понравится!!!

  30. Спасибо за внимание!

More Related