#-*- coding: UTF-8 -*-import math###Arrendondar numeros para cimaprint "2.7 ->" , math.ceil(2.7) ###Arrendondar numero para baixoprint "2.7 ->" , math.floor(2.7)###Potenciacaoprint "2**4 ->", math.pow(2,4)###Raiz quadradaprint "sqrt(25) -> ", math.sqrt(25)###Piprint math.pi###Logaritmoprint "log(200)->", math.log10(200)###Logaritmos com numeros reaisprint "log(100.25)->", math.log(100.25)### converter sinalprint "fabs(-5) ->", math.fabs(-5)print "abs(-5) ->", abs(-5) ##com abs do python### Exponenciacaoprint "Exponenciacao de 10 ->", math.exp(10)###Arrendondamento realprint "round(5.32)->", round(5.32)print "round(5.78)->", round(5.78)###Senoprint "Seno(10)->", math.sin(10)###Cossenoprint "Cosseno(10)->", math.cos(10)###Tangenteprint "Tangente(10)->", math.tan(10)###Hipotenuzaprint "Hipotenuza(5,20)->", math.hypot(5,20)###Calculo em Gammaprint "Gamma(15)->" , math.gamma(15)###MODprint "fmod(25,10)->", math.fmod(25,10)#output"""2.7 -> 3.02.7 -> 2.02**4 -> 16.0sqrt(25) -> 5.03.14159265359log(200)-> 2.30102999566log(100.25)-> 4.60766706619fabs(-5) -> 5.0abs(-5) -> 5Exponenciacao de 10 -> 22026.4657948round(5.32)-> 5.0round(5.78)-> 6.0Seno(10)-> -0.544021110889Cosseno(10)-> -0.839071529076Tangente(10)-> 0.648360827459Hipotenuza(5,20)-> 20.6155281281Gamma(15)-> 87178291200.0fmod(25,10)-> 5.0"""Mais detalhes e funcoes em:https://docs.python.org/2/library/math.html #-*- coding: UTF-8 -*-funcionarios = []clientes = []class Pessoa: def __init__(self, nome): self.nome = nome def getNome(self): return self.nomeclass Funcionario(Pessoa): def __init__(self, nome, salario): Pessoa.__init__(self, nome) self.salario = salarioclass Cliente(Pessoa): def __init__(self, nome, cpf): Pessoa.__init__(self, nome) self.cpf = cpfdef adicionarFuncionario(funcionario): funcionarios.append(funcionario)def adicionarCliente(cliente): clientes.append(cliente)def excluirFuncionario(funcionario): funcionarios.remove(cliente)def excluirCliente(cliente): clientes.remove(cliente)##Executa funcoes dinamicamentedef executar(acao, obj): classname = obj.__class__.__name__ code = "{acao}{classname}(obj)".format(acao=acao, classname=classname) exec codec1 = Cliente("geronimo", "484548")c2 = Cliente("Maria", "545457")f1 = Funcionario("Fernando", 666)executar("adicionar", c1)executar("adicionar", c2)executar("adicionar", f1)print "-- Clientes --"for i, cliente in enumerate(clientes): print i, cliente.getNome()print "--\n"print "--Funcionarios --"for i, func in enumerate(funcionarios): print i, func.getNome()print "--\n"executar("excluir", c1)print "-- Clientes atualizados--"for i, cliente in enumerate(clientes): print i, cliente.getNome()print "--\n"#output"""-- Clientes --0 geronimo1 Maria----Funcionarios --0 Fernando---- Clientes atualizados--0 Maria--""" #-*- coding: UTF-8 -*-##Sabemos que listas no python nao sao tipadas, podemos adicionar em uma lista por exemplo, um inteiro e um dicionario. Caso voce queira uma colecao que nao repita poderemos usar a funcao set na lista ou arrays, como o exemplo abaixo:##Segunda observacao: Array sao 10x mais rapidos que outras colecoes.import arrayarray_int = array.array('i') ##Array de inteiros //O parametro para tipar como inteiro pode ser tambem 'b', 'B', 'h', 'H', 'I', 'l', 'L'array_float = array.array('f') ##Array de float // O parametro para tipar como float pode ser tambem 'd'array_char = array.array('c') ##Array de charsarray_uni = array.array('u') ### Array de char unicodesarray_int2 = array.array('i', range(20))array_int.append(5)array_float.append(12.5)array_char.append('f')array_uni.append(u'F')print "-- Array"print array_intprint "-- Pegando um valor de um array"print array_int2[13]print array_float[0]print array_char[0]print array_uni[0]#output"""-- Arrayarray('i', [5])-- Pegando um valor de um array1312.5fF""" # -*- coding: utf-8 -*-from functools import wrapsfrom datetime import *import timedef returnNow(): print str(datetime.now())def gerenciadorCache(func): cache = {} @wraps(func) def wrapper(*args, **kwargs): if args in cache: print "Retornando valor em cache" return cache[args] ##Retorna o valor em cache result = func(*args) cache[args] = result return result return wrapper@gerenciadorCachedef multiplicar(n1, n2): resultado = n1 * n2 time.sleep(10) ##Simular o tempo que um metodo e utilizado pela primeira vez sem estar em cache return resultadoreturnNow()print multiplicar(1,100)returnNow()print multiplicar(1,666)returnNow()print multiplicar(1,100)returnNow()print multiplicar(1,666)returnNow()### OUTPUT"""2015-08-05 14:09:57.0287311002015-08-05 14:10:07.0327496662015-08-05 14:10:17.037917Retornando valor em cache1002015-08-05 14:10:17.037967Retornando valor em cache6662015-08-05 14:10:17.037979"""Mais sobre Decorator:http://connectdecoded.blogspot.com.br/2015/08/python-design-pattern-7-decorator.html # -*- coding: utf-8 -*-def getNumeroMaior(lista): # Reduce, possibilita a interacao com item atual e o proximo return reduce(lambda n1, n2: n1 if (n1 > n2) else n2, lista) ##< Possibilitando sempre a verificacao do maior numerpdef acrescentar(lista, number): #Map, faz um for loop em todos os valores. return map(lambda x: x+number, lista) ## < Adiciona o valor 'number' em cada numero da listadef filtrar(lista, number): #Filter, faz um filtro atraves de uma condicao