Your SlideShare is downloading. ×
0
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Minicurso Python
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Minicurso Python

1,648

Published on

Básico do básico do Python, sem nem entrar em orientação a objetos. …

Básico do básico do Python, sem nem entrar em orientação a objetos.

A imagem sobre slices foi extraída do livro "Python para Desenvolvedores", que pode ser obtido aqui:

http://ark4n.wordpress.com/python/

Alguns exemplos também foram retirados desse livro, outros do tutorial oficial de Python.

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

No Downloads
Views
Total Views
1,648
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
73
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. A linguagem Python Simplicidade multiparadigma
  • 2. Quem sou eu?  Ygor Mutti (aka Mamutti)  Técnico em desenvolvimento de software  Aluno de Ciências da Computação na UFBA  Estudo tecnologias livres  Blog  http://icaju.com  Contato:  ygor@icaju.com  @Mamutti
  • 3. Introdução  Guido Van Rossum, o BDFL  Monty Python's Flying Circus  import this  Interpretada (bytecode)  Modo interativo  Tipagem dinâmica e forte  Plataformas  Web  Desktop  Mobile
  • 4. Introdução  Batteries included  PYPI  Tudo é objeto  Multiparadigma  Procedural  Funcional  Sintaxe clara e concisa  Auto-documentada  Intermezzo
  • 5. Sintaxe  Chaves? Pra quê?  Mesma indentação = mesmo bloco  Mantenha o padrão!  Comentários  Docstrings: ''' ''' ou ””” ”””  Pydoc  help()  Linha: #  #!/usr/bin/python  # -*- coding: utf-8 -*-  Case sensitive
  • 6. Hello World! - Exercício  Objetivos (K&R)  Criar o código em algum lugar  Executá-lo  Ver para onde sua resposta foi  Código: print 'Hello World!'
  • 7. Controle de fluxo  if if condicao: bloco_de_codigo elif condicao: bloco_de_codigo elif condicao: bloco_de_codigo else: bloco_de_codigo if condicao: comando variavel = valor1 if condicao else valor2
  • 8. Controle de fluxo  break  continue  while while condicao: bloco_de_codigo continue break else: bloco_de_codigo
  • 9. Controle de fluxo  for for referencia in sequencia: bloco_de_codigo continue break else: bloco_de_codigo # Para o for à moda antiga usamos range(), que gera uma # sequência for referencia in range(inicio, fim, passo) bloco_de_codigo continue break else: bloco_de_codigo
  • 10. Operadores  Atribuição: =  a, b = b, a  Lógicos (curto-circuito)  and  or  not  Identidade:  (not) is  Pertencimento  (not) in
  • 11. Operadores  Igualdade  ==  != ou <>  Comparação  <  >  <=  >=  X<Y<Z
  • 12. Operadores  Genéricos  +  -  *  **  /  //  %  Suplementados
  • 13. Operadores  Slices
  • 14. Fibonacci – Exercício  Imprima os 10 primeiros termos da série  Use conceitos novos vistos em Python  Quanto mais simples, melhor  Compare o tamanho e a legibilidade do código com outras linguagens
  • 15. Resposta a, b = 0, 1 for i in range(10): print b a, b = b, a + b
  • 16. Primos – Exercício  Imprima os números primos no intervalo fechado de 2 a 20  Se o número não for primo, mostre quais números podem ser multiplicados para obtê-lo  Dica: use o else e o break do laço for
  • 17. Resposta for n in range(2, 21): for div in range(2, n): if n % div == 0: print n, ' = ', n / div, ' * ', div break else: print n, 'é primo.'
  • 18. Tipos embutidos  Numéricos (int, long, float, complex)  Strings (str, unicode)  Coleções (list, tuple, dict, set, frozenset)  Lógicos (bool, int, None, vazio, cheio)  Nulo (NoneType)  Arquivos (file)  Observação  Tipos mutáveis: passagem por referência  Tipos imutáveis: passagem por valor
  • 19. Funções  def # Declarando def funcao(): '''Aqui descrevemos o que a função faz.''' pass return valor # opcional # Chamando funcao()
  • 20. Funções  Parâmetros  Não existe sobrecarga de assinaturas  Tipos de parâmetros:  Simples (obrigatórios)  Com valor default (opcionais)  Lista de argumentos  Dicionario de argumentos  Namespace próprio  Ofusca variáveis globais  Global  Funções embutidas
  • 21. Fatorial – Exercício  Crie uma função fat recursiva que calcule o fatorial de um inteiro  Documente-a usando uma docstring  Execute help(fat) e observe o resultado
  • 22. Resposta def fat(inteiro): '''Retorna o fatorial de um número inteiro.” if inteiro == 1: return 1 else: return inteiro * fat(inteiro - 1)
  • 23. Documentação  Baseada nos docstrings  help()  PyDoc  pydoc modulo.py  pydoc -p 8000  pydoc -g  Manual de referência
  • 24. Módulos  import, from, as, * # Usos mais comuns import modulo_ou_pacote import pacote.modulo # Importando um módulo específico dentro de um pacote from pacote import modulo # Importando tudo (__all__) do pacote para o namespace atual from pacote import * # Alias de importações import modulo_ou_pacote as alias from pacote import modulo as alias
  • 25. Pacotes  Pastas com módulos  Facilitam a organização  __init__.py  Pode ser um arquivo vazio  Pode conter código de inicialização  Define quais módulos são importados com *
  • 26. Biblioteca padrão  Mais tipos (decimal, csv, datetime)  Extensão dos tipos embutidos (string)  Funções do interpretador (sys)  Acesso ao sistema operacional (os)  Expressões regulares (re)  Persistência (anydbm, pickle, sqlite3, API)  GUI (TkInter)  Threads (thread, threading, etc)  E muito mais!

×