Introdução a Python - Parte 1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Referências

Parte 1: Introdução à linguagem Python

Um primeiro exemplo

Qualquer tutorial de programação que se preze inicia com um exemplo do tipo Hello world !. Pois bem, em Python isso pode ser feito assim:

print('Hello world !')

Para executá-lo, há pelo menos duas maneiras:

  1. Usando o prompt do interpretador Python: isso é parecido com o uso do shell em um terminal.
    1. Em um terminal execute o interpretador Python:
      $ python3
      Python 3.4.3 (default, Sep 14 2016, 12:36:27) 
      [GCC 4.8.4] on linux
      Type "help", "copyright", "credits" or "license" for more information.
      >>>
      
    2. No prompt do interpretador digite a instrução para mostrar o Hello world ! e em seguida tecle ENTER:
      >>> print('Hello world !')
      
    3. Você deve ver na tela o resultado:
      >>> print('Hello world !')
      Hello world !
      >>>
      
  2. Criando um arquivo de script: um script é um programa executado por meio de um interpretador. Se a instrução para o Hello world ! for gravada em um arquivo da maneira mostrada a seguir, esse arquivo pode ser considerado um programa Python. Sendo assim:
    1. Crie o arquivo hello.py com seu editor favorito, e nele grave este conteúdo:
      #!/usr/bin/python3
      
      print('Hello world !')
      
    2. Ative a permissão de execução do seu arquivo hello.py:
      chmod +x hello.py
      
    3. Por fim, execute o programa hello.py:
      $ ./hello.py
      Hello world !
      $
      

Um pouco de história


Zen de Python

  • Belo é melhor que feio
  • Explícito é melhor que implícito
  • Simples é melhor que complexo
  • Complexo é melhor que complicado
  • Plano é melhor que aninhado
  • Esparso é melhor que denso
  • Legibilidade é importante
  • Casos especiais não são especiais o suficiente para quebrar as regras
  • Embora praticidade vença pureza
  • Erros nunca deveriam passar silenciosos
  • A não ser que explicitamente silenciados
  • Em face a ambiguidade, recuse a tentação de adivinhar
  • Deveria existir uma, e preferencialmente somente uma, maneira óbvia de fazer
  • Embora essa forma possa não ser óbvia de primeira, a não ser que você seja um holandês
  • Agora é melhor que nunca
  • Embora nunca é frequentemente melhor do que agora mesmo
  • Se a implementação é difícil de explicar, é uma má ideia
  • Se a implementação é fácil de explicar, pode ser uma boa ideia
  • Namespaces são uma grande e sonora ideia -- vamos fazer mais desses !

Uma simples (?) aplicação


Existem muitas possíveis aplicações que podem ser criadas com Python. Portanto o critério para escolher uma aplicação como tema para guiar esta introdução à linguagem é um tanto arbitrária. Nem por isso o programa a ser apresentado deixa de ser interessante. Afinal, o principal ponto é demonstrar como se pode criar com facilidade uma aplicação que faz uma tarefa não tão simples.

Imagine que seja necessário ter um programa que extraia automaticamente imagens existentes em páginas web. Esse programa basicamente acessa uma URL, e no documento web lá existente ele procura por imagens e as transfere para o computador. Esse programa precisaria do seguinte:

  1. Uma forma de obter o conteúdo de uma página web, dada sua URL.
  2. Identificar todas as referências a imagens contidas nessa página.
  3. Transferir cada uma das imagens para o disco local.


A primeira versão dessa aplicação pode ser vista a seguir. Ela somente mostra os nomes dos links das imagens existentes em uma determinada página. A URL dessa página deve ser informada como argumento de linha de comando:

#!/usr/bin/python3

# Importa alguns modulos necessarios

# Modulo de sistema (um modulo basico)
import sys

# Este modulo fornece um interpretador de conteúdo HTML
from bs4 import BeautifulSoup

# Este modulo fornece um acessador de conteudo web (cliente HTTP)
from urllib import request

# define a variavel "url", cujo conteudo eh o primeiro argumento de linha de comando 
# que deve conter uma URL
url = sys.argv[1]

# cria um acessador para acessar a URL
con = request.urlopen(url)

# Le todos os bytes do conteudo web identificado pela URL
dados = con.read()

# encerra a conexao do acessador
con.close()

# cria um analisador de conteudo HTML
parser = BeautifulSoup(dados, 'lxml')

# extrai uma lista de elementos HTML do tipo "img"
imagens = parser.find_all('img')

# itera a lista de elementos img
for img in imagens:
  # mostra o nome da imagem
  print(img['src'])

sys.exit(0)


Para executá-la, deve-se aplicar a técnica 2 (ver Primeiro exemplo):

  1. Copie o conteúdo do script Python para um arquivo chamado app1.py.
  2. Ative a permissão de execução desse arquivo
  3. Execute-o informando uma URL como argumento. Os caminhos das imagens serão mostrados em seguida (um por linha). Ex:
    $ ./app1.py http://mcc.sj.ifsc.edu.br 
    http://mcc.sj.ifsc.edu.br/files/2016/10/MCC_2016_TOPO-SITE_v3.jpg
    http://mcc.sj.ifsc.edu.br/files/2016/07/imagem_capa_site_mcc2016-1.png
    http://mcc.sj.ifsc.edu.br/wp-content/themes/responsive/core/icons/twitter-icon.png
    http://mcc.sj.ifsc.edu.br/wp-content/themes/responsive/core/icons/facebook-icon.png
    

Elementos da linguagem

Apresentação de dados na tela

Estrutura do código-fonte

Tipos de dados básicos

Estruturas de decisão

Estruturas de repetição

Tratamento de exceções

Tipos de dados não tão básicos

Leitura e escrita de arquivos

Módulos

APIs para string

De volta à simples aplicação

Parte 2: Introdução a pygame

Um primeiro exemplo

Elementos da API pygame

Um jogo de memória

Um jogo animado