A linguagem Python

Embed Size (px)

Citation preview

A linguagem Python

Antonio Srgio Nogueira

A linguagem Python

Sumrio

- O interpretador Python- Tipos e Comandos- Controle de Fluxo- Funes, Recurso, Exceo, Arquivos- Biblioteca Padro- Orientao a Objeto

A linguagem Python

Instalar a verso para Windowshttp://www.python.org/download/releases/2.5.4/

Abra Iniciar->Programas->Python2.5->IDLE

A linguagem Python

Linha de comando- experimente:>>>3+47>>>5-5 #comentario python0>>>a=1>>>b=2>>>a+b2>>>b*a/a-a 1>>>-7/3 #divisao inteira arredondada-3

A linguagem Python

Palavras reservadas

>>>str(1)'1'>>>str='abc'>>>str(1).......................erro voc perdeu a referncia a funo

A linguagem Python

Tipos de dados:Simples:int,long,float,complex e strings1,2,3 / 1L,-99999999L / 1.05,-19000.00005, 15e-51+1j,20j, 1000+100j / 'aaa' , bbb

>>>print 1+1j-5j , (1+2j)/(1+1j)(1-4j) (1.5+0.5j)>>>a=15e-5*10>>>print a0.0015>>>a=10L+3333333333>>>print a3333333343>>>a=aaa

A linguagem Python

>>>a=1.5+0.5j>>>print a.real , a.imag1.5 0.5j>>>a=complex(1.2,5.4)>>>print a(1.2+5.4j)>>>taxa=5>>>preco=10>>>taxa*preco50>>> print _50>>>taxa=taxa+_>>>taxa55

A linguagem Python

STRING>>> print 'OI, tudo bem.'OI, tudo bem.>>>x=string com mais de \n\uma linha>>>print xstring com mais deuma linha.>>>a=string crua (raw) \n\neste exemplo>>>print astring crua(raw) \n\neste exemplo>>>print 1 linha2 linha #veja o que acontece>>> print a*5 , a[0:4], a[-1], a[-2:] #slice

A linguagem Python

print a[-1::-1] # de trs para frenteprint a.capitalize() , a.upper() , x.count('a')>>> x=u'123' #unicode doc string #documentacao de programas string entre 3 aspas

Tipos CompostosLista, dicionrios, tuplas e conjuntosLista:>>>lista=['1',2,'b']>>>print lista['1', 2, 'b']Mtodos da lista: append,insert,count,extend,pop,remove,reserve,sort

A linguagem Python

Tuplas: so listas imutveis>>>tupla=1,2,3>>>print tupla(1,2,3)>>>tupla=() #vazia>>>tupla=1, #1 elemento>>>tupla(1,)>>>tupla=1,2,3>>>x,y,z=tupla>>>tupla.__len__()3>>>tupla[0]1>>>tupla[3]=5 #veja o que acontece

A linguagem Python

Dicionrios:conjunto no ordenados de pares{chave:valor[,chave1:valor1[,.....]]}>>>x={1:'1','2':2}>>>print x[1]1>>>print x['2']2>>>x[3]=3>>>print x[3]3>>>x.items()[(3, 3), (1, '1'), ('2', 2)]>>>x.keys()>>>x.values()>>>x.get('2')>>>x.has_key('2')

A linguagem Python

Operadores: * , / , + , - , ** , %(mdulo - resto da diviso)

Atribuio: x=y=z=2 - atribui 2 a: x, y , z

Operadores atribuio: +=, -=, /=, *=, **= a+=b a=a+b

Operadores de condio: == , != , >= , , < , in, ,is , is not>>>5 in (2,3,5)True>>>a=5>>>b=a>>>a is b, a is not b

Operadores lgicos: and, or,notExpresses Booleanas: 1==2, 1>type(a) #mostra o tipo de varivel

Em Python tudo objeto e possui mtodo e atributo.>>>a='alo'>>>a.upper()'ALO'

Operador %>>>nome='Nogueira'>>>print 'Meu nome: %s %nome>>>a=23.34567>>>print numero:%2.3%anumero:23.346

A linguagem Python

Controle de fluxowhile :>>>x=1>>>while x>>a,b=0,1>>>while b>>a=['antonio','sergio','nogueira']>>>for i in a: print i,antonio sergio nogueira

Funo range #gerar sequncia numrica>>>for i in range(1,5): print i,1 2 3 4 5

A linguagem Python

break, continue, elsebreak interromper o laocontinue continua no prximo passo do laoelse - executado quando o lao termina na exausto>>>a=['a','b','c']>>>for i in a: print i,else: print 'oi'

a b c oi

A linguagem Python

if : [elif :[elif...]else ]>>>if x==0: print zero elif x>> while True: pass

A linguagem Python

Tcnicas de Lao >>>dicionario={1:'1',2:'2'}>>>for i,j in dicionario.interitems(): # chave,valor print i,j1,12,2

zip() - percorrer 2 sequncias simultaneamentenome=[sergio,jose,antonio]profissao=[jogador,medico,analista]for i,j in zip(nome,profissao): print %s e %s %(i,j)

A linguagem Python

Funes reverse(), sorted(), enumerate()>>>a=[a,d,c]>>>a=sorted(a)['a','c','d']>>>a=['a','c','d']>>>for i in reversed(a): print i,d c a>>>for i,j in enumerate(a): print i,j1 a2 c3 d

A linguagem Python

Estrutura de dadosPilha- append(), pop()>>>pilha=[1,2,3]>>>pilha.append(4)>>>pilha.append(6)>>>pilha[1,2,3,4,6]>>>pilha.pop()6>>>pilha.pop()4>>>pilha[1,2,3]

A linguagem Python

Fila ou FIFO (first in first out)>>>fila=[1,3,4,5]>>>fila.append(6)>>>fila[1,3,4,5,6]>>>fila.pop(0)1>>>fila[3,4,5,6]

Funes sob lista filter(), map(), reduce()>>>def f(x):return(x-10>0)>>>filter(f,range(2,20))[11,12,13,14,15,16,17,18,19,20]

A linguagem Python

map(funo,sequncia)>>>def quadrado(x): return(x**2)>>>map(quadrado,range(1,5))[1,4,9,16]

reduce(funcao,sequencia) (retorna um valor construdo a partir da sequncia)>>>def soma(x,y):return(x,y)>>>reduce(soma,range(1,5))10

List comprehension (em portugus, lista por compreenso) um construtor de processamento de listas em linguagem de programao, a notao matemtica a seguinte: S={x|x N,}

A linguagem Python

>>>vetor=[1,2,3]>>>[3*x for x in vetor if x>=2][6,9]del remove elementos da lista>>>a=[1,2,3]>>>del a[0]>>>a[2, 3]

set conjunto(coleo desordenada)>>>a='abacaxi'>>>set(a)set(['a','x','c','b','i'])

A linguagem Python

>>>fruta=['pera','mamao','abacate']>>>salada=['maca','laranja','pera']>>>f=set(fruta)>>>s=set(salada)>>>a^b set(['abacate','laranja','mamao','maca'])>>>a-bset(['abacate','mamao'])>>>a&bset(['pera'])>>>a|bset(['pera','maca','abacate','laranja','mamao'])

A linguagem Python

Comando de Ajuda
>>>help(zip)...............

Funes blocos de cdigos com um nomedef nome_funcao(arg1,arg2,......,argn) return valor_de_retorno(opcional)

Exemplo:>>>def x(y): return(x*2)>>>x(2)4

A linguagem Python

Escopo das Variveis>>>v=0>>>def x(t): global v v=1>>>x(1)>>>v1#retire global v e faa v=0 e veja o q acontece#acessa tabela local/ global e tabela interna(built-in)

A linguagem Python

Funo c/ mudana de tipo em execuo>>>def x(a,b): return(a+b)>>>x(1,2)3>>>x('a','b')'ab'

Funo com valor default>>>def multiplica(a,b=2): return(a*b)>>>multiplica(2)4

A linguagem Python

Funes com argumentos opcionais>>>def somatorio(*valor): soma=0 for x in valor: soma+=x return soma>>>somatorio(2,3,4)9

Funo lambda lambda x,y:x+ydef soma(a,b): return lambda a,b:a+b

Funes recursivas

A linguagem Python

Funes pr-definidasrange(a,b), len(a), round(a,n), pow(a,n) ou a**n, chr(n), unichr(n), ord(a), min(a,b), max(a,b), abs(n), hex(n), oct(n), float(n), int(n),str(n), list(i), tuple(i)

A linguagem Python

Mdulo um arquivo contendo comandos e definies (*.py)#funcao.pydef quadrado(x): return x**2

def multiplica(x): return x*2

>>>from funcao import quadrado>>>quadrado(2)4

>>>import funcao>>>funcao.quadrado(2)4

A linguagem Python

Mdulos Padro - descrito em Python Library Reference contm tipos de dados, funes de built-in,

mdulo sys>>>import sys>>>dir (sys)>>>sys.path>>>sys.__doc__>>>sys.argv

A linguagem Python

Mdulos Importantessys, time, os, os.path, string, math, random, getopt-(argumentos de comando de linha), tkinter, pickle

Entrada e Sada>>>import sys>>>sys.stdout.write('oi')>>>print 'oi'>>>sys.stdin.readline()>>>raw_input()>>>x=raw_input('Digite seu nome:')>>>x=int(raw_input(Sua idade:))

A linguagem Python

Operaes com arquivosAssim como em outras linguagens possvel manipular arquivos.>>>arq=open(texto,w) #abre texto para gravar>>>arq.write(Escrevendo e \n saltando linha)>>>arq.close() #fecha arquivo>>>arq=open(texto,rw) #abre no modo r/w>>>arq.read() #le arquivo inteiro>>>arq.seek(0)#vai p/ inicio do arquivo>>>arq,readline() #le 1 linha>>>opes de abertura do arquivo: file r-leitura w-escrita a-append>>>help(file)

A linguagem Python

Arquivos pickle manipula objetos como se fosse string utilizado em persistncia de dados>>>f=open(expickle.txt,rw)>>>import pickle>>>pickle.dump(54.3,f)>>>pickle.dump([11,22,33],f)>>>f.close()>>>f=open(expickle.txt,rw)>>>x=pickle.load(f)>>>x54.299999999999997>>>y=pickle.load(f)[11,22,33]>>>f.close()

A linguagem Python

Mdulo os funes e variveis que ajudam o Python a se adequar ao sistema operacional.os.system permite usar comandos do sistema operacional.>>>import os>>>a=os.system>>>a(dir)No digite: a(format c:)??????>>>os.chdir(dir) # troca diretrio>>>os.startfile('c.bat') # executa arquivo bat e exe

A linguagem Python

Tratamento de Erro>>>while True: try: x=int(raw_input(entre numero:)) break except ValueError: print Errado. Tente de novo.

for arg in sys.argv[1]try: f=open(arg,'r')except IOError: print 'nao posso abrir'', argelse print arg, 'tem', len(f.readlines()),'linhas'fclose()

A linguagem Python

Mdulo math >>>import math>>>math.cos(math.pi/4.0)>>>math.log(1024,2)

Mdulo random>>>import random>>>random.choice(['a','b','c'])>>>random.random()

Mdulo datetime>>>from datetime import date>>>now=date..today()

Mdulo zlib >>>import zlib>>>t=zlib.compress(x) # x uma string>>>a=zlib.decompress(t)

A linguagem Python

Orientao a ObjetoPOO simular mundo real no computador(objetos)Objeto tipo abstrato que contm dados e procedimentos -mensagens envios, interpretaes e respostas-mtodos procedimentos e funes internas-variveis ou propriedades so dados do objeto quando ele instnciado-classe representao de um objeto-hereditariedade permite a criao de classes a partir de outra.-encapsulamento ou abstrao mecanismo de acesso aos dados do objeto apenas atravs de um mtodo.-Polimorfismos vrios resultados diferente-persistncia permanncia de um dado na memria

A linguagem Python

Em Python todos os dados so objetosclass nome: var=valor ...... var=valor def metodo(arg): ........

class MinhaClasse: '''Um exemplo simples''' i=123435 def f(self): return 'Ola mundo'>>>f=MinhaClasse() #instanciao criar objeto vazio>>>f.__doc__>>>f.i ou f.f()

A linguagem Python

__init__() - serve para definir parmetros iniciais>>>class Homem(object): i=0 __x=0 def __init__(self): print 'inicializei'>>>x=Homem()>>>x.__x # vai dar erro, varivel privada, mtodo tambm comeando com __ privado>>>class Soma(object): def __init__(self,entrada): self.valor=entrada def __add__(self,other): #mtodo especial return self.valor+other.valor>>>a= Soma(1) >>>b=Soma(2) >>>a+b

A linguagem Python

Introspeco / reflexo -propriedades de sistemas orientados a objetos que qualificam a existncia de mecanismos para descobrir e alterar, em tempo de execuo, informaes estruturais sobre um programa e objetos existentes neste. >>>dir(obj)

Classes vazias>>>class Animal(object): pass>>>baleia=Animal()>>>baleia.nome=moby>>>dir (baleia)>>>baleia.nome>>>class Animal(object): nome='moby'>>>baleia=Animal() >>>baleia.nome #adquiriu atributo

A linguagem Python

Threads fluxos de execuo que rodam dentro de uma aplicao.

Sockets comunicao entre aplicativos: Stream e Datagram(usado transmisso de vdeos, ...)