Introducao python 2010

57
Sum ´ ario Introduc ¸˜ ao Breve Hist ´ orico Iniciando com Python Estruturas Condicionais Func ¸˜ oes odulos odulos Nativos: As bater´ ıas Python, com baterias inclu´ ıdas, uma breve introduc ¸˜ ao Eduardo S. Pereira email: [email protected]/[email protected] blog:http://gravywave.blogspot.com/ dispon´ ıvel em: http://gravywave.blogspot.com/2010/10/palestra-introducao-ao- python.html 18/Outubro/2010

description

This presentation is about a introduction to programing language PYTHON.

Transcript of Introducao python 2010

Page 1: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Python, com baterias incluıdas, uma breveintroducao

Eduardo S. Pereiraemail: [email protected]/[email protected]

blog:http://gravywave.blogspot.com/disponıvel em:

http://gravywave.blogspot.com/2010/10/palestra-introducao-ao-python.html

18/Outubro/2010

Page 2: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

1 Introducao

2 Iniciando com Python

3 Estruturas Condicionais

4 Funcoes

5 Modulos

Page 3: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 4: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 5: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 6: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 7: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 8: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 9: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 10: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 11: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 12: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Introducao

Por que Python?

Conceitos fundamentais sao simples de entender;

Sintaxe clara e facil de aprender; codigo curto e legıvel;

Tıpicos pre-definidos sao poderosos e simples de usar;

Interpretador de comandos interativos;

E expressivo com abstracao de alto nıvel;

Permite rapido desenvolvimento e reduzidos erros;

Suporte a uma diversidade de bibliotecas externas;

E possıvel criar extensoes para Python com c/c++ eFORTRAN;

Multiplataforma;

Python e livre.

Page 13: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Mas o que e PYTHON

CaracterısticasLinguagem interpretada;

Variaveis determinadas dinamicamente;

Controle de bloco por indentacao;

Tipos de alto nıvel: string, lista, tuplas,dicionarios arquivos eclasses;

Tudo em PYTHON e objeto.

Page 14: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Mas o que e PYTHON

CaracterısticasLinguagem interpretada;

Variaveis determinadas dinamicamente;

Controle de bloco por indentacao;

Tipos de alto nıvel: string, lista, tuplas,dicionarios arquivos eclasses;

Tudo em PYTHON e objeto.

Page 15: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Mas o que e PYTHON

CaracterısticasLinguagem interpretada;

Variaveis determinadas dinamicamente;

Controle de bloco por indentacao;

Tipos de alto nıvel: string, lista, tuplas,dicionarios arquivos eclasses;

Tudo em PYTHON e objeto.

Page 16: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Mas o que e PYTHON

CaracterısticasLinguagem interpretada;

Variaveis determinadas dinamicamente;

Controle de bloco por indentacao;

Tipos de alto nıvel: string, lista, tuplas,dicionarios arquivos eclasses;

Tudo em PYTHON e objeto.

Page 17: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Mas o que e PYTHON

CaracterısticasLinguagem interpretada;

Variaveis determinadas dinamicamente;

Controle de bloco por indentacao;

Tipos de alto nıvel: string, lista, tuplas,dicionarios arquivos eclasses;

Tudo em PYTHON e objeto.

Page 18: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Um Pouco de Historia

Criada no fim de 1989 por Guido Van Rossum no InstitutoNacional de Pesquisas para Matematica e Ciencia daComputacao nos paıses baixos;

Sucessor da linguagem ABC.

1991 sai a versao 0.9.0

1994 lancada a versao 1.0

A partir de 200 o desenvolvimento muda pra a BeOpen e elancada a versao 2.0

2001 saia a versao 2.1 e a licenca foi renomeada para aPYTHON Foundation License.

Em outubro de 2008 e lancada a versao 2.6, mas nao paroupor ai, ja esta na versao 3.1.

Page 19: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Um Pouco de Historia

Criada no fim de 1989 por Guido Van Rossum no InstitutoNacional de Pesquisas para Matematica e Ciencia daComputacao nos paıses baixos;

Sucessor da linguagem ABC.

1991 sai a versao 0.9.0

1994 lancada a versao 1.0

A partir de 200 o desenvolvimento muda pra a BeOpen e elancada a versao 2.0

2001 saia a versao 2.1 e a licenca foi renomeada para aPYTHON Foundation License.

Em outubro de 2008 e lancada a versao 2.6, mas nao paroupor ai, ja esta na versao 3.1.

Page 20: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Um Pouco de Historia

Criada no fim de 1989 por Guido Van Rossum no InstitutoNacional de Pesquisas para Matematica e Ciencia daComputacao nos paıses baixos;

Sucessor da linguagem ABC.

1991 sai a versao 0.9.0

1994 lancada a versao 1.0

A partir de 200 o desenvolvimento muda pra a BeOpen e elancada a versao 2.0

2001 saia a versao 2.1 e a licenca foi renomeada para aPYTHON Foundation License.

Em outubro de 2008 e lancada a versao 2.6, mas nao paroupor ai, ja esta na versao 3.1.

Page 21: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Um Pouco de Historia

Criada no fim de 1989 por Guido Van Rossum no InstitutoNacional de Pesquisas para Matematica e Ciencia daComputacao nos paıses baixos;

Sucessor da linguagem ABC.

1991 sai a versao 0.9.0

1994 lancada a versao 1.0

A partir de 200 o desenvolvimento muda pra a BeOpen e elancada a versao 2.0

2001 saia a versao 2.1 e a licenca foi renomeada para aPYTHON Foundation License.

Em outubro de 2008 e lancada a versao 2.6, mas nao paroupor ai, ja esta na versao 3.1.

Page 22: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Um Pouco de Historia

Criada no fim de 1989 por Guido Van Rossum no InstitutoNacional de Pesquisas para Matematica e Ciencia daComputacao nos paıses baixos;

Sucessor da linguagem ABC.

1991 sai a versao 0.9.0

1994 lancada a versao 1.0

A partir de 200 o desenvolvimento muda pra a BeOpen e elancada a versao 2.0

2001 saia a versao 2.1 e a licenca foi renomeada para aPYTHON Foundation License.

Em outubro de 2008 e lancada a versao 2.6, mas nao paroupor ai, ja esta na versao 3.1.

Page 23: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Um Pouco de Historia

Criada no fim de 1989 por Guido Van Rossum no InstitutoNacional de Pesquisas para Matematica e Ciencia daComputacao nos paıses baixos;

Sucessor da linguagem ABC.

1991 sai a versao 0.9.0

1994 lancada a versao 1.0

A partir de 200 o desenvolvimento muda pra a BeOpen e elancada a versao 2.0

2001 saia a versao 2.1 e a licenca foi renomeada para aPYTHON Foundation License.

Em outubro de 2008 e lancada a versao 2.6, mas nao paroupor ai, ja esta na versao 3.1.

Page 24: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Um Pouco de Historia

Criada no fim de 1989 por Guido Van Rossum no InstitutoNacional de Pesquisas para Matematica e Ciencia daComputacao nos paıses baixos;

Sucessor da linguagem ABC.

1991 sai a versao 0.9.0

1994 lancada a versao 1.0

A partir de 200 o desenvolvimento muda pra a BeOpen e elancada a versao 2.0

2001 saia a versao 2.1 e a licenca foi renomeada para aPYTHON Foundation License.

Em outubro de 2008 e lancada a versao 2.6, mas nao paroupor ai, ja esta na versao 3.1.

Page 25: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Diga oi Python

Onde Baixar

http://python.org/

Oi Mundo

O codigo abaixo e escrito em um editor de .txt e renomeado com aextensao .py

# Arqu ivo oimundo . pynome = raw_intup(’Qual o seu nome: ’)sobrenome = raw_input(’Qual o seu ultimo nome: ’)print "Oi %s %s, bem vindo \ao PYTHON!" %(nome ,sobrenome)# execucao do a r q u i v oQual o seu nome: EduardoQual o seu ultimo nome: PereiraOi Eduardo Pereira , bem vindo ao PYTHON

Page 26: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Diga oi Python

Comentarios

cometarios em Python sao feitos com ‘ ’; “ ”; “‘ ”’ e #

‘Isso e um comentaraio em um linha’‘‘Isso e um comentaraio em um linha’’‘‘‘Isso e um comentarioem mais de uma linha’’’a=3.0 #A p a r t i r daqu i e um c o m e n t a r i o

Page 27: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Palavras Reservadas e Tipos de Dados

Palavras Reservadas

and,assert ,break,class,continue,del,def,if,except,exec,finally,for,from,global,lambda,not,or,pass,print,raise,return,try,while,elif,else,import,in,is

Page 28: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Palavras Reservadas e Tipos de Dados

Dados Simples

int-Inteiro de precisao fixax=1long Inteiro de precisao arbitrariax=1000Lfloat numero racional de precisao arbitrariax=1.23333complex numero complexox=1+2jstring Cadeia de caracteresx=’oi mundo’

Page 29: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Palavras Reservadas e Tipos de Dados

Dados Compostos

listasx = [1,2,3,4,5]y=[’a’,’b’,’c’,’d’]tuplasx = (1,2,3,4,5)y=(’a’,’b’,’c’,’d’)DicionariosDic= {1:’um’,2:’dois’,3:’tres’}Dic2 = {’Ator’:’Pedro’,’Diretor’:’Roberto’}set conjuntosbasket = [’maca’,’laranja’,’maca’,’pera’,’bana’,’laranga’]frutas =set(basket)frutas[’maca’,’laranja’,’pera’,’bana’ ]

Tuplas nao podem ser modificadas

Page 30: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Metodos para Strings, Listas, Dicionarios

Strings

Principais metodos: capitalize (Primeiro caracter em maiusculo),count (conta numero de ocorrencias), upper(transforma a stringem maiuscula)

palavra = "python"print palavra[0]’p’print palavra[0:2]’py’palavra[2:]’thon’palavra[:2]’py’

Page 31: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Metodos para Strings, Listas, Dicionarios

Strings

Principais metodos: capitalize (Primeiro caractere em maiusculo),count (conta numero de ocorrencias), upper(transforma a stringem maiuscula)

palavra.capitalize()’Python’palavra.count(’y’)1palavra.upper()’PYTHON’

para saber conhecer outros metodos digite no terminal iterativohelp(’string’)

Page 32: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Metodos para Strings, Listas, Dicionarios

Alguns metodos append (adiciona um elemento ao final da lista),count (retorna o numero de vezes que um elemento aparece nalista), reverse (inverte as ordens dos elementos da lista), sort(ordena os elementos da lista)

lista

x = [1,2,3,4,5,6,7]x[0]1x[1]2x.append(8)x[1,2,3,4,5,6,7,8]

Page 33: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Metodos para Strings, Listas, Dicionarios

Alguns metodos append (adiciona um elemento ao final da lista),count (retorna o numero de vezes que um elemento aparece nalista), reverse (inverte as ordens dos elementos da lista), sort(ordena os elementos da lista)

lista

x.count(4)1x.reverse()x[8,7,6,5,4,3,2,1]x.sort()x[1,2,3,4,5,6,7,8]

Page 34: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Metodos para Strings, Listas, Dicionarios

dicionarios

Alguns metodos items (Retorna uma lista de tuplas com pareschave,valor), keys (retorna uma lista com as chaves), values(retorna uma lista com os valores)

dic = {1:’um’,2:’dois’,3:’tres’}print dic[1]’um’dic.items()[(1,’um’),(2,’dois’),(3:,’tres’)]dic.keys()[1,2,3]dic.values()[’um’,’dois’,’tres’ ]

Page 35: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

if,elif,else

Em Python nao e permitido fazer atribuicoes em um if. A palavraelif e abreviacao de else if (obs: no codigo abaixo cadarepresenta um espaco em branco).

x= input(’Entre com o valor de x’)if x < 0:˜˜˜˜print’ x negativo’elif x == 0:˜˜˜˜print’zero’elif x<= 10:˜˜˜˜print’Entre 1 e 10’elif( x<=20 and x>= 11):˜˜˜˜print’Entre 11 e 20’else:˜˜˜˜print’Maior que 20’

Page 36: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

while,for

While

Repete uma sequencia enquanto uma dada expressao booleana eavaliada como verdadeira. Em Python qualquer valor inteiropositivo nao nulo e considerado verdadeiro(True), zero e -1 saoFalse.

a = 0while(a < 10):˜˜˜˜print a˜˜˜˜a+=1

Page 37: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

while,for

for

A instrucao for interage com uma sequencia, ou seja, requer umobjeto listo ou qualquer outro de sequencia.

a = [’joao’,’pedro’,’paulo’]for i in a:˜˜˜˜print i

# Execuc ao do programa’joao’’pedro’’paulo’

Page 38: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

while,for

for

Para iterar sobre uma sequencia numerica usa-se a funcaorange()

x=range(9)print x[0,1,2,3,4,5,6,7,8]for i in range(4):˜˜˜˜print i# Execuc ao do programa . 0123

Page 39: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Funcoes e Escopo das variaveis

Funcoes

Funcoes sao blocos de codigo com um nome que recebem umconjunto de argumentos e retornam um valor. A sintaxe geral parauma funcao:

def nome_funcao(arq0 ,arg1 ,...,argn):˜˜˜˜#˜˜˜˜# Bloco de c od ig o˜˜˜˜#˜˜˜˜return valor_de_retorno # o p c i o n a l#def c(a,b):˜˜˜˜return a+bd=c(2,3)print d5

Page 40: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Funcoes e Escopo das variaveis

Escopo das variaveis

Toda a variavel dentro da funcao armazena o valor na tabela desımbolos local. Referencia as variaveis sao buscadas primeiro natabela local, entao na tabela de sımbolos global e finalmente natabela de sımbolos internos (built-in).

v=0def p(t):˜˜˜˜v=2˜˜˜˜print’Na funcao: t= %i v= %i ’ %(t,v)p(3)

Na funcao: t= 3, v= 2print v0

Page 41: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Funcoes e Escopo das variaveis

Escopo das variaveis

Para se atribuir um valor a uma variavel global e preciso defini-ladentro da funcao

v=0def p(t):˜˜˜˜global v˜˜˜˜v=3˜˜˜˜print’Na funcao: t= %i v= %i ’ %(t,v)p(4)

Na funcao: t= 4, v= 3print v3

Page 42: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Funcoes e Escopo das variaveis

Escopo das variaveis

Sem a definicao de global a variavel sera apenas lida, mas nao sepode fazer atribuicao a mesma

v=2def p(t):˜˜˜˜print’Na funcao: t= %i v= %i ’ %(t,v)p(4)

Na funcao: t= 4, v= 2print v2

Page 43: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos

.py

Arquivos contendo codigo python, tendo extensao .py, saodenominados modulos. Os modulos podem conter variaveis,funcoes e classes. Estes elementos sao denominados atributo domodulo. O arquivo abaixo e um modulo chamado MyFunc.py

def fun(x):˜˜˜˜print’Dentro do modulo MyFunc.py’return x**2.0

Page 44: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos

.py

Para usar a funcao func do modulo MyFunc.py usamos o metodoimport

# Caso 1import MyFunca=MyFunc.fun(2.0)print a4.0# Caso 2from MyFunc import funa=fun(3.0)print a9.0

Page 45: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos

.py

Para usar a funcao func do modulo MyFunc.py usamos o metodoimport

# Caso 3from MyFunc import *a = func(4.0)print a16.0

Page 46: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos

dir

A funcao dir retorna uma lista de atributos do modulo.

import MyFuncdir(MyFunc)[‘__builtins__’,‘__doc__’,‘__file__’,‘__name__’,‘__package__’,‘fun’]

Page 47: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos Nativos

As Baterıas

Python vem com uma serie de modulos padroes. Alguns delessao:

Page 48: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos Nativos

osos: oferece inteface com o sistema operacional e possui variasfuncoes.

import osos.getcwd()# r e t o r n a o d i r e t o r i o c o r r e n t e’C:\\Python26’

Page 49: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos Nativos

glob

glob: retetorna uma lita de arquivos de diretorio usando caracterescuringa

import globglob.glob(*.py) # Re torna os a r q u i v o s de# e x t e n s a o . py

Page 50: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos Nativos

sys

sys: prove acesso a alguns objetos usados ou mantidos pelointerpretador que interage diretamente com o interpretador.

import syssys.pathy# l i s t a os d i r e t o r i o s do pa thsys.argv# P r o c e s s a argumentos p a s s a do s# na l i n h a de comando

Page 51: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos Nativos

math

math: oferece acesso a funcoes da biblioteca C para matematicae pontos flutuantes.

import mathmath.cos(math.pi/4.0)0.70710678118654757math.log(1024,2)10.0

Page 52: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos Nativos

random

random: fornece ferramentas para gerar selecoes aleatorias.

import randomrandom.random() # a l e a t o r i o f l o a t0.17970987693706186random.randrange(6)# e s c o l h a a l e a t o r i a de# uma f a i x a de 62

Page 53: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos Nativos

datetime

datetime:fornece classes para manipulacao de datas e horas nasmais variadas formas

from datetime import datenow=date.today()print now2010-10-17bdia=date(1981,12,25)t=now-bdiadias=t.daysprint dias10523

Page 54: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos Nativos

doctest

doctest: Para executar testes automaticos com docstring

def fun(x):˜˜˜˜ ’ ’ ’ Essa e uma fu nca o que r e t o r n a˜ ˜ ˜ ˜ o quadrado de x ’ ’ ’˜˜˜˜return x**2.0print fun.__doc__’Essa e uma funcao que retorna o quadrado de x’

Page 55: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Modulos Nativos

doctest

doctest: Para executar testes automaticos com docstring

def media(valore):˜˜˜˜ ’ ’ ’ C a l c u l a a media a r i t i m e t i c a de˜ ˜ ˜ ˜ uma l i s t a de numeros .˜˜˜˜>> p r i n t media ( [ 2 0 , 3 0 , 7 0 ] )˜ ˜ ˜ ˜ 4 0 . 0 ’ ’ ’˜˜˜˜return sum(valores ,0.0)/len(valores)import doctestdoctest.testmod() # V a l i d a o t e s t e

Page 56: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

FIM

Grato

MUITO OBRIGADO.

Page 57: Introducao python 2010

Sumario

IntroducaoBreve Historico

Iniciando comPython

EstruturasCondicionais

Funcoes

ModulosModulos Nativos: Asbaterıas

Referencias

Rashi Gupta. Making use of python. Wiley Publisher. New York.2002. 390p.Python na Pratica: Um curso objetivo de Programacao Python,http://www.async.com.br/projects/Labaki Josue, Introducao a Python Modulo Basico, Unesp.Antonio Serigio Nogueira, Progamando em Python, ModuloBasico. 2009