SlideShare a Scribd company logo
1 of 24
Download to read offline
Информатика в школе:
язык Python и компьютерная алгебра
Алексей Зобнин
Яндекс,
Механико-математический факультет МГУ

4 декабря 2013 г.
Язык программирования Python
– появился в 1991 году;
– сейчас — один из самых популярных языков
программирования;

http://python.org/
Создатель языка Python

Гвидо ван Россум, голландский программист.
Первая программа на Python’е

print "Hello, world!"
Первая программа на Python’е

print "Hello, world!"
Версии языка

– 2.x
– 3.x
Версии языка

– 2.x (2.7.6);
– 3.x (3.4.0).
Особенности языка
–
–
–
–
–
–

скриптовый интерпретируемый язык;
язык высокого уровня;
динамическая типизация;
минималистичный синтаксис;
богатая стандартная библиотека;
автоматическое управление памятью.

a, b = 5, 7
while b != 0:
a, b = b, a % b
print a
Фрагменты программ из ЕГЭ (B14)
var a,b,t,M,R: integer;
Function F(x: integer): integer;
begin
F := 9*(x+19)*(x-19) + 1;
end;
BEGIN
a := -20; b := 20;
M := a; R := F(a);
for t := a to b do begin
if (F(t)<R) then begin
M:=t; R:=F(t);
end;
end;
write(M);
END.
А теперь на Python’е

def F(x):
return 9*(x+19)*(x-19) + 1
a, b = -20, 20
M = a; R = F(a)
for t in xrange(a, b + 1):
if F(t) < R:
M = t
R = F(t)
print M
import sys
words_dict = dict()
for line in sys.stdin:
words = line.strip().split()
for word in words:
if word not in words_dict:
words_dict[word] = 1
else:
words_dict[word] += 1
for word, freq in words_dict.items():
print word, freq
Преимущества Python’а для обучения

–
–
–
–
–

компактный код;
меньше шансов для синтаксических ошибок;
отступы — неотъемлемая часть языкa;
синтаксис напоминает псевдокод;
высокая скорость разработки.
The Zen of Python
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the
rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
The Zen of Python, II
In the face of ambiguity, refuse the temptation
to guess.
There should be one– and preferably only one
–obvious way to do it.
Although that way may not be obvious at first
unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a
bad idea.
If the implementation is easy to explain, it may
be a good idea.
Namespaces are one honking great idea – let’s do
more of those!
Формальные исполнители алгоритмов
– «черепашка», «чертежник» (язык Logo, 1967)
– «робот» (язык Karel, 1981).
Модуль turtle
from turtle import *
def draw_circle(a, s):
for j in xrange(a):
right(360.0/a)
forward(s)
def draw(a, s):
for i in xrange(a):
right(360.0/a)
draw_circle(a, s)
hideturtle()
bgcolor("black")
pencolor("red")
pensize(3)
draw(36, 20)
Guido van Robot
Математические модули

–
–
–
–

math
pylab
matplotlib
numpy
Модуль matplotlib
import math, pylab
from matplotlib import mlab
def f(x):
if x == 0:
return 1.0
return math.sin(x) / x
xmin = -20.0
xmax = 20.0
dx = 0.01
xlist = mlab.frange(xmin, xmax, dx)
ylist = [f(x) for x in xlist]
pylab.plot (xlist, ylist)
pylab.show()
Модуль sympy
from sympy import *
n, x, y = symbols("n x y")
expr = Limit((1 + 1/n)**n, n, oo)
print expr
Limit((1 + 1/n)**n, n, oo)
print expr.doit()
E
trigsimp(sin(x)*cos(y) + sin(y)*cos(x))
sin(x+y)
solve(x**3 - 6*x**2 + 9*x, x)
[0,3]

http://sympy.org/
http://live.sympy.org/
Система компьютерной алгебры Sage
– свободная и кроссплатформенная;
– в качестве языка программирования выбран Python;
– объединяет множество профессиональных
математических пакетов;
– можно работать через браузер.

http://sagemath.org/
1
×
110
2
2
4 3
2 2
2
1
× x 6 + x5 − x4 +
x −
x +
x+
5
25
125
125
125
125
f (x) =

x6 −

.

More Related Content

Similar to зобнин информатика в школе

Go для python-программистов
Go для python-программистовGo для python-программистов
Go для python-программистовKonstantin Cherkasov
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013ScalaNsk
 
Сергей Крыжановский - Языки программирования
Сергей Крыжановский - Языки программированияСергей Крыжановский - Языки программирования
Сергей Крыжановский - Языки программированияYandex
 
Back to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняBack to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняAlexander Granin
 
Языки программирования
Языки программированияЯзыки программирования
Языки программированияpaulsmirnov
 
Ag Systran 2008 04 26
Ag Systran 2008 04 26Ag Systran 2008 04 26
Ag Systran 2008 04 26NLPseminar
 
С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)Unigine Corp.
 
Python и высокая нагрузка
Python и высокая нагрузкаPython и высокая нагрузка
Python и высокая нагрузкаAlexander Shigin
 
Лев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про ErlangЛев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про ErlangYury Yurevich
 
Erlang and OCaml Experience at Echo
Erlang and OCaml Experience at EchoErlang and OCaml Experience at Echo
Erlang and OCaml Experience at EchoLev Walkin
 
содержательно 1
содержательно 1содержательно 1
содержательно 1guestd40fac0
 
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...Daniel Podolsky
 
GetDev.NET: Снова Эрланг
GetDev.NET: Снова ЭрлангGetDev.NET: Снова Эрланг
GetDev.NET: Снова ЭрлангMaxim Krentovskiy
 
Многопоточность
МногопоточностьМногопоточность
Многопоточность0leGG
 

Similar to зобнин информатика в школе (20)

Go для python-программистов
Go для python-программистовGo для python-программистов
Go для python-программистов
 
DLR Hosting
DLR HostingDLR Hosting
DLR Hosting
 
Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013
 
Сергей Крыжановский - Языки программирования
Сергей Крыжановский - Языки программированияСергей Крыжановский - Языки программирования
Сергей Крыжановский - Языки программирования
 
Back to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодняBack to the future: Функциональное программирование вчера и сегодня
Back to the future: Функциональное программирование вчера и сегодня
 
Языки программирования
Языки программированияЯзыки программирования
Языки программирования
 
Ag Systran 2008 04 26
Ag Systran 2008 04 26Ag Systran 2008 04 26
Ag Systran 2008 04 26
 
python vs ruby
python vs rubypython vs ruby
python vs ruby
 
ОПК № 1 – Вводная
ОПК № 1 – ВводнаяОПК № 1 – Вводная
ОПК № 1 – Вводная
 
С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)С одним плюсом (Андрей Аксёнов)
С одним плюсом (Андрей Аксёнов)
 
Python и высокая нагрузка
Python и высокая нагрузкаPython и высокая нагрузка
Python и высокая нагрузка
 
Kl10 tch – paver.js + t.js
Kl10 tch – paver.js + t.jsKl10 tch – paver.js + t.js
Kl10 tch – paver.js + t.js
 
Лев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про ErlangЛев Валкин — Кое-что про Erlang
Лев Валкин — Кое-что про Erlang
 
Erlang and OCaml Experience at Echo
Erlang and OCaml Experience at EchoErlang and OCaml Experience at Echo
Erlang and OCaml Experience at Echo
 
содержательно 1
содержательно 1содержательно 1
содержательно 1
 
KL10TCH: Paver.js + T.js
KL10TCH: Paver.js + T.jsKL10TCH: Paver.js + T.js
KL10TCH: Paver.js + T.js
 
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
 
GetDev.NET: Снова Эрланг
GetDev.NET: Снова ЭрлангGetDev.NET: Снова Эрланг
GetDev.NET: Снова Эрланг
 
Многопоточность
МногопоточностьМногопоточность
Многопоточность
 
Kranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burmaKranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burma
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

зобнин информатика в школе

  • 1. Информатика в школе: язык Python и компьютерная алгебра Алексей Зобнин Яндекс, Механико-математический факультет МГУ 4 декабря 2013 г.
  • 2. Язык программирования Python – появился в 1991 году; – сейчас — один из самых популярных языков программирования; http://python.org/
  • 3. Создатель языка Python Гвидо ван Россум, голландский программист.
  • 4. Первая программа на Python’е print "Hello, world!"
  • 5. Первая программа на Python’е print "Hello, world!"
  • 7. Версии языка – 2.x (2.7.6); – 3.x (3.4.0).
  • 8. Особенности языка – – – – – – скриптовый интерпретируемый язык; язык высокого уровня; динамическая типизация; минималистичный синтаксис; богатая стандартная библиотека; автоматическое управление памятью. a, b = 5, 7 while b != 0: a, b = b, a % b print a
  • 9. Фрагменты программ из ЕГЭ (B14) var a,b,t,M,R: integer; Function F(x: integer): integer; begin F := 9*(x+19)*(x-19) + 1; end; BEGIN a := -20; b := 20; M := a; R := F(a); for t := a to b do begin if (F(t)<R) then begin M:=t; R:=F(t); end; end; write(M); END.
  • 10. А теперь на Python’е def F(x): return 9*(x+19)*(x-19) + 1 a, b = -20, 20 M = a; R = F(a) for t in xrange(a, b + 1): if F(t) < R: M = t R = F(t) print M
  • 11. import sys words_dict = dict() for line in sys.stdin: words = line.strip().split() for word in words: if word not in words_dict: words_dict[word] = 1 else: words_dict[word] += 1 for word, freq in words_dict.items(): print word, freq
  • 12. Преимущества Python’а для обучения – – – – – компактный код; меньше шансов для синтаксических ошибок; отступы — неотъемлемая часть языкa; синтаксис напоминает псевдокод; высокая скорость разработки.
  • 13. The Zen of Python Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren’t special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced.
  • 14. The Zen of Python, II In the face of ambiguity, refuse the temptation to guess. There should be one– and preferably only one –obvious way to do it. Although that way may not be obvious at first unless you’re Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it’s a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea – let’s do more of those!
  • 15. Формальные исполнители алгоритмов – «черепашка», «чертежник» (язык Logo, 1967) – «робот» (язык Karel, 1981).
  • 16. Модуль turtle from turtle import * def draw_circle(a, s): for j in xrange(a): right(360.0/a) forward(s) def draw(a, s): for i in xrange(a): right(360.0/a) draw_circle(a, s) hideturtle() bgcolor("black") pencolor("red") pensize(3) draw(36, 20)
  • 17.
  • 20. Модуль matplotlib import math, pylab from matplotlib import mlab def f(x): if x == 0: return 1.0 return math.sin(x) / x xmin = -20.0 xmax = 20.0 dx = 0.01 xlist = mlab.frange(xmin, xmax, dx) ylist = [f(x) for x in xlist] pylab.plot (xlist, ylist) pylab.show()
  • 21.
  • 22. Модуль sympy from sympy import * n, x, y = symbols("n x y") expr = Limit((1 + 1/n)**n, n, oo) print expr Limit((1 + 1/n)**n, n, oo) print expr.doit() E trigsimp(sin(x)*cos(y) + sin(y)*cos(x)) sin(x+y) solve(x**3 - 6*x**2 + 9*x, x) [0,3] http://sympy.org/ http://live.sympy.org/
  • 23. Система компьютерной алгебры Sage – свободная и кроссплатформенная; – в качестве языка программирования выбран Python; – объединяет множество профессиональных математических пакетов; – можно работать через браузер. http://sagemath.org/
  • 24. 1 × 110 2 2 4 3 2 2 2 1 × x 6 + x5 − x4 + x − x + x+ 5 25 125 125 125 125 f (x) = x6 − .