python para programadores
DESCRIPTION
Um mini-curso rá°©do de Python para programadores que já ³abem programar. Apresenta uma vis㯠geral da sintaxe da linguagem.TRANSCRIPT
- 1. Python para programadores
-
- Quick Crash Fast Introductory Course :)
-
-
- Osvaldo Santana Neto
-
- Baseado no curso de:
-
- Alex Augusto da Luz dos Santos
2. Histrico da Linguagem
- Guido van Rossum
- ABC
- Criada em 1991
- Monty Python Flying Circus
3. Caractersticas
- Interpretada + Compilada
- Orientada objetos
- Suporte a outros paradigmas
-
- Funcional
-
- Estrutural
- Multiplataforma
-
- Unix/Linux (Maemo :) ), Windows, Mac OS, etc.
- Dinamicamente tipada
-
- No necessita declarao de tipo pois o tipo fica ligado ao objeto
-
- Fortemente tipada (diferente do tipovariantdo Visual Basic)
4. Caractersticas
- Licena Compatvel com BSD (e com GPL)
- Conjunto completo de Estruturas de dados nativos na linguagem
-
- Listas, Tuplas, Strings, Dicionrios, Iteradores, ...
- Ambiente Interativo
- Documentao pertencendo ao cdigo (docstrings)
5. Caractersticas
- Fcil integrao com outras linguagens
-
- C / C++, Java, Lua, ...
- Exemplo em C:
#include static PyObject * spam_system(PyObject *self, PyObject *args) { const char *command; int sts; if(!PyArg_ParseTuple(args,"s" , &command)) return NULL; sts = system(command); return Py_BuildValue( "i" , sts); } } 6. Comentrios Genricos
- No necessrio declarar variveis
- Blocos de cdigo so definidos pela indentao (no precisa de { nem de })
- O self passado por parmetro para os mtodos
- No necessrio compilar cdigo
7. Hierarquia de Classes 8. Tipos mais importantes
- Inteiros:
-
- Exemplos:
-
-
- 256, 123456789L, 1.5, 1e-45, 53+12j
-
-
- Operaes:
-
-
- 256 + 54, 32 * 3, 55 ** 2, 128 | 123, ...
-
9. Tipos mais importantes
- Strings:
-
- Exemplos:
-
-
- "string normal", u"string unicode", r"string expressao regular", """string multilinha""", 'string', ...
-
-
- Operaes (dica: use odir() ):
-
-
- "spam" * 3 # resultado: "spamspamspam"
-
-
-
- "spam" + "eggs" # resultado: "spameggs"
-
-
-
- "spam%s%d" % ("eggs", 256) # resultado: "spameggs256"
-
-
-
- mtodos:upper(), lower(), capitalize(), strip(), split(), join(), ..., ...
-
-
-
- slicing(veremos adiante)
-
10. Tipos mais importantes
- Listas e Tuplas
-
- Exemplos:
-
-
- [ "spam", "eggs" ]
-
-
-
- ( "spam", "eggs" )
-
-
- Operaes:
-
-
- a,b,c = (1, 2, 3) # resulta: a=1, b=2, c=3
-
-
-
- [1, 2, 3]+[4,5] # resulta: [1, 2, 3, 4, 5]
-
-
-
- [1, 2, 3].append(4) # resulta: [1, 2, 3, 4 ]
-
-
-
- mtodos:append(), extend(), pop(), reverse(), sort(), insert(), ...
-
-
-
- slicing
-
11. Tipos mais importantes
- Dicionrios
-
- Exemplo:
-
-
- { "spam": 'eggs' }
-
-
- Operaes:
-
-
- dic["spam"] # resulta: 'eggs'
-
-
-
- mtodos:has_key(), get(), update(), items(), keys(), ...
-
12. Tipos mais importantes
- Arquivos (file)
-
- Exemplos:
-
-
- f = open("arquivo.txt", "r")
-
-
-
- f = file("arq.bin", "wb")
-
-
- Operaes:
-
-
- for linha in open("arq.txt"): pass
-
-
-
- mtodos:read(), readline(), write(), readlines(), close(), ...
-
13. Slicing
- "Fatia" uma seqncia
- Sintaxe:
-
- sequencia[inicio:fim:step]
- Exemplos:
-
- "spameggs"[1] # "p"
-
- "spameggs"[-1] # "s"
-
- "spameggs"[1:5] # "pame"
-
- "spameggs"[1:] # "pameggs"
-
- "spameggs"[1:-1] # "pamegg"
-
- "spameggs"[::2] # "saeg"
-
- "spameggs"[::-1] # "sggemaps"
14. Comandos
- Condicional:
-
- ifcondicao:
-
-
- # comandos
-
-
- elifcondicao:
-
-
- # comandos
-
-
- else:
-
-
- # comandos
-
-
- No precisa dos parntesis (" if (condicao): ") que foge aostyle guideda linguagem
-
- No permitido atribuio: " if f=x(1): "
15. Comandos
- Repetio:
-
- whilecondicao:
-
-
- # comandos
-
-
-
- ...continue
-
-
-
- ...break
-
-
- else :
-
-
- # comandos
-
16. Comandos
- Iterao:
-
- forelementoinsequencia:
-
-
- # comandos
-
-
- else :
-
-
- # comandos
-
- Exemplo:
-
- foriinrange(10):
-
-
- print i,
-
-
- # imprimir: 0 1 2 3 4 5 6 7 8 9
17. Comandos
- Excesses:
-
- try :
-
-
- # comandos
-
-
- except Exception , e:
-
-
- raise NewException ,"spam!"
-
18. Funes
- Definio:
-
- deff(parametro):
-
-
- valor ="x"
-
-
-
- returnvalor
-
-
- deff(x, parm= 2 ):# parametro default
-
-
- returnparm
-
19. Funes
- Definio:
-
- deff(*parms):
-
-
- returnparms
-
-
- printf( "spam" ,"eggs" )
-
- # ('spam', 'eggs')
20. Funes
- Definio:
-
- deff(**kargs):
-
-
- returnkargs
-
-
- printf(x= 1 , y= 2 )
-
- # {'x': 1, 'y': 2}
21. Orientao objetos
- Definio de classe:
-
- classspam( object ):pass
-
- Construtor: " __init__() "
- Exemplo:
-
- classspam( object ):
-
-
- def__init__( self , parm):
-
-
-
-
- self.attr = parm
-
-
-
- eggs = spam( "foo" )# instancia um objeto spam
- O parmetroselfdeve ser explicitamente declarado nos mtodos.
22. Mdulos
- A biblioteca do Python vem organizada em mdulos e packages.
- Importando em namespace separado:
-
- importmodulo
- Importando para o namespace corrente:
-
- frommoduloimport*
23. Mdulos
- Exemplos:
-
- importsys
-
- importos
-
- frommailimport*
-
- frommoduloimportClasse
-
- importpacote.subpacote.modulo
-
- frompacote import *
- Existem dezenas de mdulosbuiltinao Python e mais centenas de mdulos de terceiros.
- RUDA: Cita os mdulos mais importantes
24. Mdulos mais importantes
- sys funcionalidades do ambiente Python
- os funcionalidades do sistema operacional
- re mdulo de expresses regulares
- httplib utilizao de HTTP
- gzip compresso
- xml parsers xml
- sha, md5, ... - segurana / digests
- imaplib, poplib, telnetlib, ... - protocolos de rede
- ... entre outros
25. Mais informaes
- www.pythonbrasil.com.br
- www.python.org
- diretamente com o Osvaldo (ou Rud)
- www.google.com :)
- Aguarde a continuao deste mini-curso...
- (PyGTK ou Pygame)