Python II
Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
Manipulando Arquivos <ul><li>Similar a C, tanto nas funções como nos modos de acesso. </li></ul><ul><li>Abrir com  file(<f...
Manipulando Arquivos <ul><li>Abrindo um arquivo para leitura open('foobar.txt', 'r') </li></ul><ul><li>Abrindo um arquivo ...
Manipulando Arquivos <ul><li>Uso comum: iterando linhas: </li></ul><ul><li>Removendo o  '
'  no final da linha:  line.stri...
Exercício <ul><li>Abra um arquivo de texto  A  para leitura </li></ul><ul><li>Crie (para escrita) um novo arquivo  B </li>...
Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
Módulos <ul><li>Arquivo contendo definições e comandos python (scripts...) </li></ul><ul><li>Podem ser em Python ou nativo...
Módulos <ul><li>Módulo  sys  – Informações do sistema </li></ul><ul><ul><li>sys.exit(0)  – Sai do interpretador ou program...
Exercício <ul><li>Modifique o programa de cópia de arquivos para receber os nomes dos arquivos de origem e de destino pela...
Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
Classes <ul><ul><li>class  Automovel: </li></ul></ul><ul><ul><ul><li>def  __init__ ( self , placa='XX-123'): self.placa = ...
Herança <ul><li>Java </li></ul><ul><li>Python </li></ul><ul><ul><li>public class Caminhao  extends  Carro { </li></ul></ul...
Herança Múltipla <ul><li>C++ </li></ul><ul><li>Python </li></ul><ul><ul><li>class Transformer : public Automovel, public R...
Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
Exercício <ul><li>Crie uma classe  Ponto  conforme diagrama ao lado, salve o código num arquivo de nome  ponto.py </li></u...
Exercício (cont.) <ul><li>Coloque cada objeto Ponto numa lista. </li></ul><ul><li>Imprima cada elemento da lista. </li></u...
Nota Sobre List Comprehensions <ul><li>List Comprehensions  criam listas a partir de listas, de forma análoga a uma expres...
Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
Leituras Recomendadas <ul><li>Workshop de Python no CIn, parte 1 </li></ul><ul><ul><li>http://www.cin.ufpe.br/~cinlug/wiki...
http://www.cinlug-br.org
<ul><li>Atribuição-Compartilhamento pela mesma licença 2.5 ( http://creativecommons.org/licenses/by-sa/2.5/deed.pt ) </li>...
Upcoming SlideShare
Loading in …5
×

Workshop Python.2

1,534 views

Published on

Workshop de Python no CIn, 26/07/2007

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,534
On SlideShare
0
From Embeds
0
Number of Embeds
138
Actions
Shares
0
Downloads
69
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Quem estiver no Windows e não tiver Python instalado faça download em: http://www.portablepython.com
  • Workshop Python.2

    1. 1. Python II
    2. 2. Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
    3. 3. Manipulando Arquivos <ul><li>Similar a C, tanto nas funções como nos modos de acesso. </li></ul><ul><li>Abrir com file(<file>, <mode>) </li></ul><ul><ul><li>Modos de </li></ul></ul><ul><ul><ul><li>leitura ( 'r' ) </li></ul></ul></ul><ul><ul><ul><li>escrita ( 'w' ) </li></ul></ul></ul><ul><ul><ul><li>append ( 'a' ) </li></ul></ul></ul><ul><ul><li>Modo binário ( 'b' ) </li></ul></ul><ul><ul><li>Modo misto com '+' (leitura e escrita) </li></ul></ul><ul><ul><li>open/file </li></ul></ul><ul><ul><li>close </li></ul></ul><ul><ul><li>write </li></ul></ul><ul><ul><li>read </li></ul></ul><ul><ul><li>readline </li></ul></ul><ul><ul><li>write </li></ul></ul><ul><ul><li>writeline </li></ul></ul><ul><ul><li>seek </li></ul></ul><ul><ul><li>tell </li></ul></ul>
    4. 4. Manipulando Arquivos <ul><li>Abrindo um arquivo para leitura open('foobar.txt', 'r') </li></ul><ul><li>Abrindo um arquivo para escrita (APAGA O CONTEÚDO DO ARQUIVO!!!) open('foobar.txt', 'w') </li></ul>
    5. 5. Manipulando Arquivos <ul><li>Uso comum: iterando linhas: </li></ul><ul><li>Removendo o ' ' no final da linha: line.strip() </li></ul><ul><li>close() é opcional (chamado automaticamente quando é destruído) </li></ul><ul><ul><li>arq = open('foobar.txt', 'r') </li></ul></ul><ul><ul><li>for linha in arq: </li></ul></ul><ul><ul><li>print linha </li></ul></ul><ul><ul><li>arq.close() </li></ul></ul><ul><ul><li>O objeto file é seu próprio iterador. A cada iteração do for , o método next de file é chamado. </li></ul></ul>
    6. 6. Exercício <ul><li>Abra um arquivo de texto A para leitura </li></ul><ul><li>Crie (para escrita) um novo arquivo B </li></ul><ul><li>Escreva o conteúdo do arquivo A no arquivo B , intercalando suas linhas com linhas em branco </li></ul><ul><ul><li>Exemplo: B A </li></ul></ul><ul><ul><li>Linha 1 </li></ul></ul><ul><ul><li>Linha 2 </li></ul></ul><ul><ul><li>Linha 3 </li></ul></ul><ul><ul><li>Linha Direta </li></ul></ul><ul><ul><li>Linha 1 </li></ul></ul><ul><ul><li>Linha 2 </li></ul></ul><ul><ul><li>Linha 3 </li></ul></ul><ul><ul><li>Linha Direta </li></ul></ul>
    7. 7. Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
    8. 8. Módulos <ul><li>Arquivo contendo definições e comandos python (scripts...) </li></ul><ul><li>Podem ser em Python ou nativos (C/C++) </li></ul><ul><li>Importando: </li></ul><ul><li>Módulo 'principal' tem o atributo __name__ como “__main__” </li></ul><ul><ul><li>import nomedomodulo </li></ul></ul><ul><ul><li>import nomedomodulo as mod </li></ul></ul><ul><ul><li>from nomedomodulo import foobar </li></ul></ul>
    9. 9. Módulos <ul><li>Módulo sys – Informações do sistema </li></ul><ul><ul><li>sys.exit(0) – Sai do interpretador ou programa </li></ul></ul><ul><ul><li>sys.argv – Lista de argumentos passados para o programa </li></ul></ul><ul><ul><li>Execute na linha de comando: </li></ul></ul><ul><ul><li>python args.py argumento1 argumento2 </li></ul></ul>import sys print sys.argv for arg in sys.argv: print arg args.py
    10. 10. Exercício <ul><li>Modifique o programa de cópia de arquivos para receber os nomes dos arquivos de origem e de destino pela linha de comando. </li></ul>
    11. 11. Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
    12. 12. Classes <ul><ul><li>class Automovel: </li></ul></ul><ul><ul><ul><li>def __init__ ( self , placa='XX-123'): self.placa = placa </li></ul></ul></ul><ul><ul><ul><li>def get_placa( self ): return self.placa </li></ul></ul></ul><ul><ul><ul><li>def dirigir( self , velocidade): print 'Estou dirigindo a %d' ' km/h' % velocidade </li></ul></ul></ul><ul><ul><li>construtor </li></ul></ul><ul><ul><li>métodos </li></ul></ul><ul><ul><li>self </li></ul></ul><ul><ul><li>Automovel </li></ul></ul><ul><ul><li>+ placa : str </li></ul></ul><ul><ul><li>__init__(str) : None </li></ul></ul><ul><ul><li>get_placa() : str </li></ul></ul><ul><ul><li>dirigir(int) : None </li></ul></ul>
    13. 13. Herança <ul><li>Java </li></ul><ul><li>Python </li></ul><ul><ul><li>public class Caminhao extends Carro { </li></ul></ul><ul><ul><li>public Caminhao(String placa) { </li></ul></ul><ul><ul><li>super (placa); </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>class Caminhao (Carro): </li></ul></ul><ul><ul><li>def __init__(self, placa): </li></ul></ul><ul><ul><li>Carro.__init__ (self, placa) </li></ul></ul><ul><ul><li>Carro </li></ul></ul><ul><ul><li>+ placa : str </li></ul></ul><ul><ul><li>__init__(str) : None </li></ul></ul><ul><ul><li>Caminhao </li></ul></ul><ul><ul><li>__init__(str) : None </li></ul></ul>
    14. 14. Herança Múltipla <ul><li>C++ </li></ul><ul><li>Python </li></ul><ul><ul><li>class Transformer : public Automovel, public Robo { </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><ul><li>}; </li></ul></ul><ul><ul><li>class Transformer(Automovel, Robo): </li></ul></ul><ul><ul><li>... </li></ul></ul><ul><ul><li>Automovel </li></ul></ul><ul><ul><li>Transformer </li></ul></ul><ul><ul><li>Robo </li></ul></ul>
    15. 15. Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
    16. 16. Exercício <ul><li>Crie uma classe Ponto conforme diagrama ao lado, salve o código num arquivo de nome ponto.py </li></ul><ul><ul><li>O método __str__ retorna uma string se alguém der um “print objeto” . Faça com que mostre os dados do objeto no formato: “Nome: (x, y)” </li></ul></ul><ul><li>Crie outro script que importe ponto , e leia um arquivo contendo informações sobre vários pontos, criando um objeto Ponto para cada entrada lida. </li></ul><ul><ul><li>Ponto </li></ul></ul><ul><ul><li>+ nome : str + x : int + y : int </li></ul></ul><ul><ul><li>__init__(nome, x, y) : None </li></ul></ul><ul><ul><li>__str__() : str </li></ul></ul>
    17. 17. Exercício (cont.) <ul><li>Coloque cada objeto Ponto numa lista. </li></ul><ul><li>Imprima cada elemento da lista. </li></ul>A 100 200 B 130 150 C 500 239 OutroPonto 199 54 pontos.txt
    18. 18. Nota Sobre List Comprehensions <ul><li>List Comprehensions criam listas a partir de listas, de forma análoga a uma expressão matemática. </li></ul><ul><ul><li>A = {0, 2, ... 99} </li></ul></ul><ul><ul><li>S = {2x | x A, x > 10 e x < 50} </li></ul></ul><ul><ul><li>A = range(100) </li></ul></ul><ul><ul><li>S = [2*x for x in A if x > 10 and x < 50] </li></ul></ul>
    19. 19. Arquivos Módulos e Scripts Orientação a Objetos Exercício Leituras Recomendadas
    20. 20. Leituras Recomendadas <ul><li>Workshop de Python no CIn, parte 1 </li></ul><ul><ul><li>http://www.cin.ufpe.br/~cinlug/wiki/index.php/Workshop_de_Python_no_CIn%2C_parte_1 </li></ul></ul><ul><li>File Management in Python </li></ul><ul><ul><li>http://www.devshed.com/c/a/Python/File-Management-in-Python/ </li></ul></ul><ul><li>Python Library Reference (em Javanês: “a API de Python”) </li></ul><ul><ul><li>http://docs.python.org/lib/lib.html </li></ul></ul><ul><li>Curso de Python em 5 Horas </li></ul><ul><ul><li>http://gustavobarbieri.com.br/palestras/python-5hs/ </li></ul></ul><ul><li>Resumo Python </li></ul><ul><ul><li>http://www.gustavobarbieri.com.br/python/aulas_python/resumo.pdf </li></ul></ul>
    21. 21. http://www.cinlug-br.org
    22. 22. <ul><li>Atribuição-Compartilhamento pela mesma licença 2.5 ( http://creativecommons.org/licenses/by-sa/2.5/deed.pt ) </li></ul><ul><li>Você pode: </li></ul><ul><ul><li>copiar, distribuir, exibir e executar a obra </li></ul></ul><ul><ul><li>criar obras derivadas </li></ul></ul><ul><ul><li>fazer uso comercial da obra </li></ul></ul><ul><li>Sob as seguintes condições: </li></ul><ul><li>Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. </li></ul><ul><li>Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. </li></ul><ul><ul><li>Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. </li></ul></ul><ul><ul><li>Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. </li></ul></ul><ul><li>Qualquer direito de uso legítimo (ou &quot;fair use&quot;) concedido por lei, ou qualquer outro direito protegido pela legislação local, não são em hipótese alguma afetados pelo disposto acima. </li></ul><ul><li>Este é um sumário para leigos da Licença Jurídica (na íntegra: http://creativecommons.org/licenses/by-sa/2.5/br/legalcode ). Termo de exoneração de responsabilidade: http://creativecommons.org/licenses/disclaimer-popup?lang=pt </li></ul>

    ×