Юрова Анна группа 222 доклад по теме Информатика

Доклад раскрывает тему " Юрова Анна группа 222 ".
Презентация поможет подготовится к предмету Информатика, может быть полезна как ученикам и студентам, так и преподавателям.
Материал представлен на 28 страницах, оформлен в виде презентации, доступен для скачивания и просмотра онлайн.

Навигация по документу

Страница №1
Юрова Анна, группа 222
Страница №2
Парадигма программирования.
Парадигма программирования.
Страница №3
Функциональное программирование
Функциональное программирование
Страница №4
Концепции.
 Функции высших порядков
    функции, которые могут принимать в качестве  аргументов и возвращать другие функции.
Концепции. Функции высших порядков функции, которые могут принимать в качестве аргументов и возвращать другие функции.
Страница №5
Модель вычисления без состояний.
Модель вычисления без состояний.
Страница №6
Особенности.
чисто функциональная программа не может изменять уже имеющиеся у неё данные, а может лишь порождать новые путём копирования и/или расширения старых.
Особенности. чисто функциональная программа не может изменять уже имеющиеся у неё данные, а может лишь порождать новые путём копирования и/или расширения старых.
Страница №7
Сильные стороны.
Повышение надёжности кода
    за счёт чёткой структуризации    и отсутствия необходимости отслеживания побочных эффектов.
Сильные стороны. Повышение надёжности кода за счёт чёткой структуризации и отсутствия необходимости отслеживания побочных эффектов.
Страница №8
Недостатки и как с ними бороться.
Отсутствие присваиваний и замена их на порождение новых данных приводят к большим затратам памяти и вычислений при копировании.
Сборщик мусора.
     специальный код, который периодически освобождает память, удаляя объекты, которые уже не будут востребованы приложением
Недостатки и как с ними бороться. Отсутствие присваиваний и замена их на порождение новых данных приводят к большим затратам памяти и вычислений при копировании. Сборщик мусора. специальный код, который периодически освобождает память, удаляя объекты, которые уже не будут востребованы приложением
Страница №9
Python.
Python.
Страница №10
Информация вложена в изображении слайда
Страница №11
Функции в Python.
определение функции происходит во время выполнения.
 имя функции не является однозначно определенным. Важен только объект на который ссылается имя.
     othername = func  #связывание объекта функции 
                                     с именем
  othername()       #вызов функции
Функции в Python. определение функции происходит во время выполнения. имя функции не является однозначно определенным. Важен только объект на который ссылается имя. othername = func #связывание объекта функции с именем othername() #вызов функции
Страница №12
Функции в Python.
def func(x, y): 
   return x**2 + y**2 

func = lambda x, y: x**2 + y**2
Функции в Python. def func(x, y): return x**2 + y**2 func = lambda x, y: x**2 + y**2
Страница №13
Функции в Python. Аргументы.
def func(x, y, z=7)
    return x+y+z
 
print func(1, y=3) # 1+3+7=11
Функции в Python. Аргументы. def func(x, y, z=7) return x+y+z print func(1, y=3) # 1+3+7=11
Страница №14
Области видимости.
Имена, определяемые внутри инструкции def, видны ТОЛЬКО программному коду внутри инструкции def. К ним нельзя обратиться за пределами функции.
Имена, определяемые внутри инструкции def, не вступают в конфликт с именами, находящимися за пределами инструкции def.
Области видимости. Имена, определяемые внутри инструкции def, видны ТОЛЬКО программному коду внутри инструкции def. К ним нельзя обратиться за пределами функции. Имена, определяемые внутри инструкции def, не вступают в конфликт с именами, находящимися за пределами инструкции def.
Страница №15
Области видимости.
#Глобальная область видимости.
X = 99 # X и func определены в модуле:  
                     глобальная область
def func(Y): # Y и Z определены в функции:
                       локальная область
    #Локальная область видимости
    Z = X + Y # X – глобальная переменная
    return Z
 
func(1) #result = 100
Области видимости. #Глобальная область видимости. X = 99 # X и func определены в модуле: глобальная область def func(Y): # Y и Z определены в функции: локальная область #Локальная область видимости Z = X + Y # X – глобальная переменная return Z func(1) #result = 100
Страница №16
Области видимости. Инструкция global.
y, z = 1,2 #Глобальные переменные
                        в модуле.
def all_global():
    global x #объявляется глобальной
                    для присваивания
    x = y + z
Области видимости. Инструкция global. y, z = 1,2 #Глобальные переменные в модуле. def all_global(): global x #объявляется глобальной для присваивания x = y + z
Страница №17
Функции в Python.
Функции в Python.
Страница №18
Информация вложена в изображении слайда
Страница №19
Функции высших порядков. Map().
list1 = [1,3,5]
list2 =[1,2,3]

def inc(x):
    return x+10

map(inc, list1)
#[11, 13, 15]

map(lambda x, y: x**y, list1, list2)
#[1, 9, 125]

[x * y for x, y in zip(list1, list2)]
#[1, 9, 125]
Функции высших порядков. Map(). list1 = [1,3,5] list2 =[1,2,3] def inc(x): return x+10 map(inc, list1) #[11, 13, 15] map(lambda x, y: x**y, list1, list2) #[1, 9, 125] [x * y for x, y in zip(list1, list2)] #[1, 9, 125]
Страница №20
Функции высших порядков. Filter()
list = [9, 1, -4, 3, 8]
filter(lambda x: x < 5, list) 
#[1, -4, 3] 


list = [9, 1, -4, 3, 8] 
[x for x in list if x < 5]
# [1, -4, 3]
Функции высших порядков. Filter() list = [9, 1, -4, 3, 8] filter(lambda x: x < 5, list) #[1, -4, 3] list = [9, 1, -4, 3, 8] [x for x in list if x < 5] # [1, -4, 3]
Страница №21
Функции высших порядков. Reduce()
list = [2, 3, 4, 5, 6] 
reduce(lambda res, x: res*x, list, 1)
#720 = ((((1*2)*3)*4)*5)*6 
 
reduce(lambda res, x: res*x, [], 1) 
#1 

reduce(lambda res, x: [x]+res, [1, 2, 3, 4], []) 
#[4, 3, 2, 1] 

reversed([1,2,3,4,5])
#[5,4,3,2,1]
Функции высших порядков. Reduce() list = [2, 3, 4, 5, 6] reduce(lambda res, x: res*x, list, 1) #720 = ((((1*2)*3)*4)*5)*6 reduce(lambda res, x: res*x, [], 1) #1 reduce(lambda res, x: [x]+res, [1, 2, 3, 4], []) #[4, 3, 2, 1] reversed([1,2,3,4,5]) #[5,4,3,2,1]
Страница №22
Информация вложена в изображении слайда
Страница №23
Замыкания.
def make_adder(x): 
    def adder(n): 
        return x + n # захват переменной "x" из
                             внешнего контекста                                         
    return adder 

# То же самое, но через безымянные функции: 

make_adder = lambda x: ( lambda n: ( x + n ) )
f = make_adder(10) 

print f(7) # 17 
print f(-4) # 6
Замыкания. def make_adder(x): def adder(n): return x + n # захват переменной "x" из внешнего контекста return adder # То же самое, но через безымянные функции: make_adder = lambda x: ( lambda n: ( x + n ) ) f = make_adder(10) print f(7) # 17 print f(-4) # 6
Страница №24
Замыкания. Partial.
from functools import partial 
def add(a, b): 
    return a + b 

add1 = partial(add, b=1) 


print add1(2) 
#3
Замыкания. Partial. from functools import partial def add(a, b): return a + b add1 = partial(add, b=1) print add1(2) #3
Страница №25
Информация вложена в изображении слайда
Страница №26
Генераторы.
генераторы — функции, сохраняющие внутреннее состояние: значения локальных переменных и текущую инструкцию
Генераторы. генераторы — функции, сохраняющие внутреннее состояние: значения локальных переменных и текущую инструкцию
Страница №27
Генераторные выражения.
генераторные выражения — выражения, дающие в результате генератор
Генераторные выражения. генераторные выражения — выражения, дающие в результате генератор
Страница №28
Литература.
Марк Лутц. Изучаем Питон. 3-е издание.
http://ru.wikipedia.org/wiki/Функциональное_программирование_на_Питоне
http://ru.wikipedia.org/wiki/Функциональное_программирование
Г. Россум, Ф.Л.Дж.Дрейк, Д.С.Откидач «Язык программирования Python»
Журнал «Практика функционального программирования» http://fprog.ru/
Литература. Марк Лутц. Изучаем Питон. 3-е издание. http://ru.wikipedia.org/wiki/Функциональное_программирование_на_Питоне http://ru.wikipedia.org/wiki/Функциональное_программирование Г. Россум, Ф.Л.Дж.Дрейк, Д.С.Откидач «Язык программирования Python» Журнал «Практика функционального программирования» http://fprog.ru/