Python

Python é uma linguagem de programação orientada a objetos lançada em 1991. Prioriza a legibilidade do código sobre a velocidade ou expressividade, combinando uma sintaxe concisa e clara com os recursos poderosos de sua biblioteca padrão e por módulos e frameworks desenvolvidos por terceiros. O nome Python teve a sua origem no grupo humorístico britânico Monty Python.

python

Para a separação de blocos de código, a linguagem usa espaços em branco e indentação ao invés de delimitadores visuais como chaves ou palavras. Ou seja, a indentação é obrigatória: o aumento da indentação indica o início de um novo bloco, que termina da diminuição da indentação. Um bloco inicia quando uma linha é indentada em 4 espaços – um bloco dentro de outro bloco, possui mais 4 espaços a frente, e assim por diante.

Utilizando o interpretador interativo não é necessário a criação do arquivo de Python compilado, os comandos são executados interativamente. Porém quando um programa ou um módulo é evocado, o interpretador realiza a análise léxica e sintática, compila o código de alto nível se necessário e o executa na máquina virtual da linguagem. O interpretador Python é um programa dinâmico que passa continuamente por mudanças e desenvolvimento, portanto o script pode rodar em uma versão mas não em outra – veja a versão instalado no seu PC através do comando “python -V” no bash.

No Python, a tipagem dos dados e objetos é dinâmica, ou seja, ao uma nova variável, ou um parâmetro de uma função, não é preciso informar qual é o seu tipo, nem mesmo defini-la antes de usá-la. Internamente todo valor é baseado em algum tipo de dado, que por sua vez é uma classe. Uma vez que um valor é atribuído a uma variável, ela passa a se comportar da forma que a classe daquele valor foi definida para se comportar.

Instalação

Sua instalação pode ser via apt-get:

$ sudo apt-get install python

Para instalar os módulos, utilize “sudo apt-get install python-MÓDULO” se tiver no repositório do Debian/Ubuntu – aparece o erro “ImportError: No module named …” quando não tem o módulo. Observação: para instalar módulo para o python versão 2.xx, basta escrever “python”, mas se for usar outra versão (3, 3.4, etc), deve-se colocar seu respectivo número após o nome do binário (python3, python3.4, etc) – o mesmo vale quando for executar um script python ou chamar o terminal.

Uma alternativa para instalar módulos é usar o comando pip, que busca os pacotes no repositório PyPI da Python Software Foundation. Essa opção abrange um número maior de módulos e permite escolher a versão. Além disso, ela é compilada no seu computador (os repositórios Linux usando versões pré-copmpiladas). Primeiro, instale o pip através dos seguintes comandos:

# Python -V < 3
sudo apt-get install python-pip
# Python -V >= 3
sudo apt-get install python3-pip

# Para versões mais antigas de Linux
# Python -V < 3
sudo apt-get install python-setuptools
sudo easy_install pip
# Python -V >= 3
sudo apt-get install python3-setuptools
sudo easy_install3 pip

Depois, basta instalar o módulo usando “sudo pip install MÓDULO” (ou pip3). Se der algum erro do tipo “Command “python setup.py egg_info” failed with error code 1 in…”, atualize o “setuptools” através do comando “pip install –upgrade setuptools” (ou pip3).

Existem outras opções de instalação do python, como através do anaconda/miniconda e com ambientes virtuais – veja mais no post Conda e ambientes virtuais.

Utilização

Para usar o modo interativo (console), digite “python” e vai aparecer o prompt de comando como “>>>”. Para sair, use “exit()”.

Os arquivos de código-fonte são identificados por “.py” e executados como “python nome_script.py”. Comentários começam com # e são terminados pela quebra da linha. É comum incluir a linha “coding” logo no início do script, indicando que ele usa a codificação informada (necessária para digitar acentos e caracteres especiais, por exemplo). O uso de “reload(sys)” e “sys.setdefaultencoding()” sempre foi desencorajado. Para usar codificação UTF-8, comece o script com a linha “# -*- coding: utf-8 -*-“. No caso de vetores cujos elementos apareçam com uma letra u e um apóstrofe na frente quando imprimir, como u'[‘conteúdo’], acrescente “.encode(‘utf-8’)” depois da variável a ser utilizada – por exemplo: tmax = obj[‘tmax’].encode(‘utf-8’).

Sentenças não são funções (observe que não possuem parênteses em seguida); if, while e break são exemplos de sentenças de controle de fluxo, pois elas estabelecem quais instruções são executadas – a linha que as contém sempre termina com dois pontos “:”. Enquanto o Python possui muitas funções, algumas delas existem em programas separados, chamados módulos. Nas primeiras linhas de código, deve começar importando os módulos. Para utilizá-los, escreva “import nome_do_módulo”. Esta é uma sentença de importação. Veja um exemplo:

>>> from datetime import date
>>> hoje = date.today()
>>> hoje
datetime.date(2008, 11, 24)
>>> hoje.__class__
<type 'datetime.date'>

Nesse caso, para trabalhar com datas, é preciso importar um pacote chamado “date”, de dentro de outro pacote, chamado “datetime”. A função “today()” retorna a data do dia no formato “datetime.date” (o que pode ser visto na linha seguinte).

Alguns exemplos de funções: print() mostra um texto na tela; input() armazena um texto dado como entrada, pelo teclado; os.system() executa um comando shell; sys.exit(“Error message”) pára a execução e imprime mensagem (precisa do módulo sys). Para receber argumentos através da linha de comando, utilize a seguinte sintaxe (como é recebido uma lista, o segundo par de colchetes serve para selecionar o primeiro elemento):

data = sys.argv[1:][0]

O sys.argv[0] é o nome do próprio arquivo.

Manipulação de arquivos

Para manipular arquivos em Python, utiliza-se a função open com a seguinte sintaxe: variavel = open(“file”, “modo”). O modo pode ser leitura “r” (read) ou escrita “w” (write). Caso não exista o arquivo, ele é criado. “var_file” é um objeto, que pode ser acessado pelos seguintes métodos:

  • read(): retorna uma string única com todo o conteúdo do arquivo;
  • readline(): retorna a próxima linha do arquivo, e incrementa a posição atual;
  • readlines(): retorna todo o conteúdo do arquivo em uma lista, uma linha do arquivo por elemento da lista;
  • write(data): escreve a string data para o arquivo, na posição atual ou ao final do arquivo, dependendo do modo de abertura – esta função falha se o arquivo foi aberto com modo “r”;
  • seek(n): muda a posição atual do arquivo para o valor indicado em n;
  • close(): fecha o arquivo – sempre utilizado no final da manipulação do arquivo.

Veja esses dois exemplos para ler/escrever um arquivo de texto de múltiplas linhas:

texto = '''1a linha
2a linha
3a linha
'''

# Leitura
with open('arquivo.txt', 'r') as f:
	for linha in f.readlines():
		print(linha)

# Outra forma de leitura
with open('arquivo.txt', 'r') as f:
	conteudo = f.read().splitlines()
	print(conteudo)

# Escrita
with open('arquivo.txt', 'w') as f:
	f.write(texto)

# Outra forma de escrita
f = open ('arquivo.txt', 'w')
f.write(texto)
f.close()

Obs: se for imprimir um número, utilize “str(número)” para convertê-lo em texto.

Banco de dados

Os métodos, que também são definidos para programação orientada a objetos, são funções dentro de uma classe. Um exemplo de objeto, responsável por enviar comandos ao banco de dados, é o “cursor”. Dentre as operações desse objeto está o execute (executa comando no banco de dados) e fetchall (retorna todos os valores produzidos pelo comando executado).

Ao utilizar a operação “fetchall”, será retornada uma tupla (ou “tuple”), que é como uma lista, só que imutável (ou seja, não dá para aplicar um “sort”, por exemplo) – veja mais no post sobre Orientação a objeto no python e IDL. Ela é escrita entre parênteses e pode receber dados de datetime, string e inteiro conjuntamente, por exemplo:

import psycopg2
from datetime import datetime

conn = psycopg2.connect(host = "HOST", database = "DBNAME", user="USER")
cursor = conn.cursor()
query = "SELECT * FROM schema.table WHERE id = '1';"
cursor.execute(query)
temp = cursor.fetchall()
# print temp retorna: [(1, datetime.date(2015, 2, 6), datetime.date(2015, 7, 1), 90.9189)]
>> print str(temp[0][1])
# retorna: 2015-02-06

Para identificar um elemento nela, deve-se usar duas vezes a identificação de posição. Nesse exemplo, o comando “str(temp[0][1])” escolhe a posição 0 dentro da tupla (que só tem uma posição mesmo) e posição 1 com o elemento “datetime” (o comando “str()” é opcional, serve para imprimir a datetime no formato “2015-02-06”).

Python no Windows

Baixe o instalador disponível no site do Python. Ao executar o arquivo, marque a opção “Add Python to PATH” para simplesmente rodar usando o comando “python nome_do_script.py” diretamente no terminal do Windows (comando “cmd”) -caso contrário, você deve escrever o caminho completo do seu interpretador python (“C:\ProgramData\Anaconda2\python.exe” App.py, por exemplo), seguido de espaço e o nome do script. Você também pode incluir o caminho das variáveis de ambiente depois – veja como fazer isso se tiver permissões de administrador e se não tiver nos respectivos links. No segundo caso, basicamente você deve criar uma nova variável chamada “Path” no seu usuário cujo conteúdo seja o caminho para onde está o executável. Depois, basta digitar “python” para entrar no terminal ou “python nome_script.py” para executar o script.

O Anaconda também está disponível para Windows. O mais indicado é não definir as variáveis de ambiente, e sim usar diretamente o “Anaconda prompt” para executar os scripts python.

Você também pode usar uma IDE (Ambiente de desenvolvimento integrado, em inglês), como o spyder, o PyCharm ou o Aton. Um equivalente ao “exit()” para travar o código em um ponto é usar os comandos “sys.tracebacklimit = 0” e “raise ValueError()” seguidos.

Fontes

Compartilhe :)

6 comments

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.