Categorias
Introdução à Programação para Bioinformática com Biopython

Introdução ao Python

Capítulo 1

Este conteúdo faz parte do livro “Introdução à Programação para Bioinformática com Biopython“. Você pode adquirir a versão impressa desse livro aqui ou a versão para Kindle aqui. Para nos citar, consulte este link.

Python é uma linguagem de programação de alto nível, ou seja, comandos são descritos em uma linguagem próxima à linguagem natural; interpretada, depende do interpretador Python para execução de scripts; dinâmica e fortemente tipada; orientada a objetos, permite que o código seja organizado em classes; e possui a característica peculiar de utilizar a indentação do código para definir a estrutura dos blocos, ou seja, enquanto outras linguagens de programação utilizam a indentação apenas para organização do código, em Python ela é vital para o correto funcionamento de scripts. Outra característica marcante da linguagem é o não uso de ponto e vírgula para encerrar linhas de comando.

Logotipo do Python. Python foi criado por Guido van Rossum. Surgiu em: 1991. Mantido por: Python Software Foundation. Fonte: www.python.org / GPL

História

Python foi desenvolvida por Guido van Rossum, enquanto trabalhava no CWI (Centrum Wiskunde & Informatica), instituto que era financiado pelo Departamento de Educação do Governo da Holanda. Guido notou a necessidade da criação da uma nova linguagem de programação quando percebeu que o desenvolvimento de aplicações utilizando a linguagem C estava gastando muito de seu tempo. Inicialmente, a linguagem foi nomeada B, entretanto já havia uma linguagem com esse nome. Inspirado pelo grupo de comédia Monty Python’s Flying Circus, a linguagem passou a se chamar Python. O vínculo com o animal píton (serpente) só veio anos mais tarde, quando publicou o livro “Programming Python” e a editora O’Reilly, que possuía a tradição de utilizar animais em seus livros, utilizou uma cobra na capa para representar Python.

Instalando Python

Linux e MacOS:

Se você utiliza sistemas operacionais Linux ou MacOS, Python já vem instalado por padrão. Para utilizá-lo, abra o terminal e execute o comando “python” seguido pelo nome de um script ou comando simples.

Windows:

  1. Baixe a última versão para Windows disponível do Python em: https://www.python.org/downloads/.
  2. Efetue a instalação com os parâmetros padrões.
  3. Após concluir a instalação, abra o prompt de comando (se não sabe como fazer isso, abra o menu iniciar, digite CMD e pressione enter) e digite python. Se tudo estiver correto, você receberá uma mensagem informando a versão do Python instalada e ativar um console interativo. Se não funcionar, tente reiniciar computador. Caso persista o problema, consulte as referências bibliográficas ao final deste livro.

Meu primeiro programa: “hello world

Um programa em Python é constituído por linhas de comando que serão lidas e executadas pelo interpretador Python. Como dito anteriormente, a sintaxe do Python não exige nenhum caractere para delimitar o fim de uma linha de código, mas você pode utilizar uma barra invertida (\) para indicar que a linha continua abaixo.

Abra seu editor de códigos. Caso tenha optado pelo Sublime Text, no menu View, vá até a opção Syntax e altere para Python. Digite:

print "Hello world!" 

Salve o arquivo com o título “hello.py” na área de trabalho (desktop ou mesa). Evite inserir espaços ou caracteres especiais no título do arquivo, assim é recomendável substituir espaços pelo caractere underline “_”. A terminação de um arquivo de script em Python deve ser “.py”.

Agora vamos executar o script: vá até o terminal (Linux/MacOS) ou o prompt de comando (Windows). Navegue até a pasta onde está o script (se não sabe como fazer isso, confira as dicas logo abaixo).

Dicas (navegando em pastas pelo terminal/prompt):

  1. Para entrar em uma pasta utilize o comando “cd nome_da_pasta”. Para voltar à pasta anterior utilize “cd ..”. Utilize o comando “pwd” para saber em que pasta está. Utilize o comando “ls” (Linux/MacOS) ou “dir” (Windows) para listar todos os arquivos e pastas presentes no diretório atual. Exemplo:
    1. se está usando Windows, abra o prompt pelo menu iniciar (digite “cmd”); o prompt será executado na raiz do usuário (confira digitando pwd e pressionando enter: será exibido algo como “/users/nome_usuario” ou “C:/users/nome_usuario”); agora digite cd Desktop (ou cd Área de trabalho) e depois enter; digite ls (ou dir) e confira se o arquivo “hello.py” está presente no diretório.

Agora, execute o script no terminal com o comando:

python hello.py 

Será exibida em sua tela a seguinte mensagem:

Hello World! 

PARABÉNS! Você acaba de criar o seu primeiro programa em Python! Você utilizou o comando “print” que imprime as informações contidas entre aspas.

Comentando o código

Agora precisamos avisar ao mundo que você é o autor desse maravilhoso código. Para isso utilizaremos comentários.

Comentários são trechos de códigos que não serão lidos pelo interpretador, ou seja, regiões de comentários serão ignoradas pelo processador na hora da execução. Eles são extremamente importantes para organização e documentação do código, ou seja, servem para explicar a função de um determinado trecho de código e para passar diversos tipos de informações, caso outros programadores precisem alterar seu código ou até mesmo você no futuro. Lembre-se: bons programadores sempre comentam seus códigos.

Abra o arquivo “hello.py” e vamos editá-lo:

'''
Titulo: Meu primeiro programa em Python
Funcao: Escreve a frase ‘Hello world!’ na tela
Autor: insira_aqui_seu_nome
Contato: seu_email@provedor.com
'''
 
# Imprime a frase ‘Hello world!’
print(‘Hello world!’)
 
# Fim do programa

Observe que há duas maneiras de se criar comentários em Python:

  1. Utilizando três aspas simples seguidas (‘’’): com esse método todo o texto contido entre as três primeiras aspas simples e as três últimas fica comentado, logo todo o código contido nele passa a ser ignorado durante a execução.
  2. Utilizando o caractere sustenido (#): esse caractere no início da linha (ou em qualquer outra parte) indica que apenas o conteúdo daquela linha será ignorado a partir da declaração do caractere.

Agora salve o arquivo. Agora execute o script novamente. O resultado obtido deve ser similar a figura abaixo.

Acima vemos a execução do script no Sublime Text 2. Pressionando as teclas COMMAND + B (MacOs) ou CONTROL + B (Windows e Linux) o script é executado em uma tela abaixo do editor. Perceba que não foram inseridos caracteres especiais, como acentos ou cedilha.

Comentários também podem ser utilizados de maneira funcional para detectar a codificação utilizada no arquivo (o que pode auxiliar para que seu código fonte aceite caracteres especiais) ou para indicar, em sistemas operacionais UNIX, qual será o interpretador utilizado.

#!/usr/bin/env python 
# -*- coding: utf-8 -*-

No exemplo acima, os caracteres “#!” foram utilizados para indicar o endereço do interpretador Python. Por exemplo, em um sistema Linux, se o endereço do interpretador estiver correto, o código acima pode ser executado com os comandos “./nome_do_script.py” ao invés de “python nome_do_script.py”. Entretanto, talvez seja necessário dar permissões de execução para o script. Para isso, é necessário executar no terminal o comando “chmod +x nome_do_script.py”. Lembre-se de conferir se está no mesmo diretório do script.

Enquanto isso, o código “# -*- coding: utf-8 -*-” é utilizado para indicar que o padrão de codificação utilizado é UTF-8, padrão que permite acentuações utilizadas na língua portuguesa.

Em geral, o uso de comentários funcionais é opcional, logo em nenhum exemplo deste livro serão utilizados. Deixamos a cargo de vocês decidir utilizá-los ou não.

Variáveis

Variáveis são elementos em um script utilizados para armazenamento de informações. Pense em uma variável como se fosse uma caixa em que se pode guardar uma determinada informação e que poderá ser utilizada a qualquer momento. Por exemplo, no seu primeiro programa você utilizou a função print para imprimir a frase “Hello world!”, entretanto você foi obrigado a inserir a frase na mesma linha do comando. E se por algum motivo aquela informação fosse inserida antes do comando print? Vamos editar mais uma vez o nosso programa para que a frase fique armazenada em uma variável chamada “frase“.

'''
Titulo: Meu primeiro programa em Python
Funcao: Escreve a frase "Hello world!" na tela
Autor: insira_aqui_seu_nome
Contato: seu_email@provedor.com
'''
 
#Minha primeira variavel
frase = "Hello world!"
 
# Imprime a variavel frase
print(frase)
 
# Fim do programa

Observe que para criar a variável foi necessário apenas digitar o nome dela, seguido do operador de atribuição “=”. Em seguida, foi possível imprimi-la com o comando print seguido do nome da variável sem o uso de aspas.

O nome da variável deve ser escolhido de acordo com o programador, entretanto recomenda-se que o nome tenha alguma relação com o tipo de dados contido naquela variável. Nomes de variáveis também são case sensitive, ou seja, uma variável chamada “frase” é diferente de uma variável chamada “Frase” ou “FRASE”. Além disso, nomes de variáveis não podem conter caracteres especiais, não deve conter espaços (caso necessário utilize underline “_”), não pode começar com um número e não pode ter o mesmo nome de alguma das palavras reservadas do Python.

Lista de palavras reservadas do Python

  • and
  • assert
  • break
  • class
  • continue
  • def
  • del
  • elif
  • else
  • except
  • exec
  • finally
  • for
  • from
  • global
  • if
  • import
  • in
  • is
  • lambda
  • not
  • or
  • pass
  • print
  • raise
  • return
  • try
  • while
  • yield

Variáveis podem ter diversos tipos, dentre os mais comuns destacam-se variáveis textuais que armazenam sequências de caracteres (strings), variáveis inteiras (int), variáveis de pontos flutuantes (float) e variáveis boleanas (boolean).

Tipo de variável

Característica

Exemplo de declaração

string

Representam cadeias de caracteres. Devem ser declarados sempre entre aspas simples ou duplas.

variavel = “Isto eh uma string”

int

Tipo de variável que representa números inteiros.

variavel = 1

float

Variável que permite números decimais.

variavel = 1.993

boolean

Variável lógica. Pode ser True, para verdadeiro, ou False, para falso.

variavel = False

Note que se declararmos uma variável como igual a “1” (variavel = “1”), essa seria uma variável do tipo string. Enquanto uma variável declarada como: variavel = 1, seria uma variável do tipo int. E uma variável declarada como: variavel = 1.00, seria uma variável do tipo float.

Além disso, existem tipos de variáveis que funcionam como coleções, como por exemplo, listas, tuplas e dicionários. Variáveis em Python também podem ser mutáveis, que permitem modificações, ou imutáveis, que não permitem modificações.

Operações matemáticas

Operações matemática através da linguagem Python podem ser realizadas de maneira simples, utilizando operadores aritméticos, como por exemplo:

  • soma (+);
  • subtração (-);
  • multiplicação (*);
  • divisão (/);
  • módulo (%);
  • potenciação (**);
  • divisão com resultado inteiro (//)

No exemplo abaixo, vamos realizar uma operação de soma. Para esse exemplo, crie um novo arquivo chamado soma.py.

'''
Titulo: soma.py
Funcao: Realizando uma soma com Python
'''
 
# Recebe o primeiro numero
A = 2
 
# Recebe o segundo numero
B = 3
 
# Realiza a soma
SOMA = A + B
 
# Exibe resultado na tela
print(A)
print("+")
print(B)
print("=")
print(SOMA)

Nesse exemplo, recebemos duas variáveis: uma chamada A e outra chamada B. Em seguida criamos uma terceira variável que recebe a soma de A e B. Por fim, exibimos o resultado na tela. Note a diferença em se utilizar o comando print para imprimir variáveis e strings. Não há problema em utilizá-lo várias vezes seguidas, entretanto em breve aprenderemos um modo mais prático para se exibir resultados.

Além desse método é possível inserir os valores numéricos diretamente na variável SOMA, assim:

SOMA = 2 + 3 

Da mesma forma é possível efetuar outras operações matemáticas como: subtração, divisão e multiplicação. É possível também intercalar operações matemáticas e isolá-las utilizando parênteses. Veja:

# Subtracao: 5 menos 3, igual a 2
OPERACAO = 5 - 3
 
# Multiplicacao: 2 vezes 3, igual a 6
OPERACAO = 2 * 3
 
# Divisao: 4 dividido por 2, igual a 2
OPERACAO = 4 / 2
 
# Expressao: 5 menos 3, vezes 2 vezes 3, dividido por 
# 4 dividido por 2, o resultado sera 6
 
OPERACAO = (5 - 3) * (2 * 3) / (4 / 2)
 
print(OPERACAO)

Observe que no exemplo dado, a variável OPERACAO, impressa na última linha, terá o valor dado pela última operação matemática. Isso ocorreu devido ao fato da variável utilizada em todas as operações ter o mesmo nome. Logo, ao final de cada operação matemática, o resultado obtido substitui o resultado anterior armazenado em OPERACAO.

Python também permite que você faça conversões de tipos numéricos. Por exemplo, se você tem uma variável do tipo float é possível convertê-la para o tipo int:

valor_pi = 3.14
# arredondando pi
valor_pi_arredondado = int(valor_pi)
print(valor_pi_arredondado)
 
# 3 

O mesmo é válido caso queira converter uma variável do tipo int para float (utilize a função float(variável)) ou até mesmo para converter um valor numérico em string (utilize a função str(variável)).

Recebendo valores digitados pelo usuário (input de dados)

Aprendemos a fazer operações matemáticas, entretanto os valores numéricos precisaram ser inseridos diretamente no código fonte de nosso programa. Python, assim como outras linguagens de programação, permite que o usuário interaja com o programa enviando dados durante a execução sem a necessidade de visualizar o código fonte. Para fazer isso podemos utilizar a função input( ). Vamos testá-la utilizando nosso exemplo anterior.

'''
Titulo: soma.py
Funcao: Realizando uma soma com Python
'''
 
# Recebe o primeiro numero do usuario
A = input("Digite um numero: ")
 
# Recebe o segundo numero do usuario
B = input("Digite outro numero: ")
 
# Realiza a soma
SOMA = A + B
 
# Exibe resultado na tela
print(A)
print("+")
print(B)
print("=")
print(SOMA)

A função input( ) interrompe o funcionamento do programa e aguarda até que um valor seja digitado pelo usuário seguido pela tecla enter. Somente assim o fluxo de execução do programa é prosseguido. No exemplo acima, as variáveis A e B recebem valores digitados pelo usuário. A sintaxe da função ainda permite que uma mensagem seja exibida na tela para enviar ao usuário informações sobre o tipo de dado que está sendo requerido.

No Python 3, a função raw_input() foi substituída pela função input().

Determinando se um número é par ou ímpar

Pode parecer estranho, mas em programação é extremamente relevante em alguns casos determinar se um número é par ou ímpar. Para isso é possível utilizar o operador módulo (%). O módulo determina o resto de uma divisão. Assim, para descobrir se um número é par ou ímpar pode-se aplicar o módulo por dois. Veja:

num = 10
resto = num % 2 
print(resto)

O resto da divisão de 10 por 2 é zero, logo a variável num armazena um número par. Se num fosse igual a 11, o resto da divisão por 2 seria 1, assim seria possível descobrir que o número é impar.

Módulos, pacotes e bibliotecas

Módulos podem ser definidos como arquivos com funções e classes que podem ser importados para um determinado programa e carregados através da instrução import.

# Importar todo modulo os
import os
print(os.name)
 
# Importar um modulo de forma relativa
from os import name
print(name)
 
# Importar tudo definido para o modulo 
from os import * 
print(name)

Pacotes são pastas utilizadas pelo interpretador para organizar módulos de forma hierárquica. Python identifica diretórios como pacotes através do arquivo “__init__.py”. É possível importar todos os módulos de um pacote através do comando:

from nome_do_pacote import * 

Bibliotecas contêm conjuntos de módulos e pacotes. Python possui uma série de bibliotecas instaladas por padrão, como a biblioteca os (biblioteca do sistema operacional), math (operações matemáticas) e time (funções de tempo), entretanto bibliotecas de terceiros podem ser instaladas e ampliar a gama de propriedades do Python.

Biopython é uma biblioteca do Python desenvolvida por terceiros. Aprenderemos nos próximos capítulos como instalá-la.

Quer aprender mais? Conheça nossos cursos profissionalizantes à partir de R$19,99:

Livro Introdução à Programação para Bioinformática com Biopython

Capítulo 1
Introdução ao Python

Capítulo 2
Comandos condicionais

Capítulo 3
Laços de repetição

Capítulo 4
Trabalhando com strings

Capítulo 5
Listas

Capítulo 6
Manipulando arquivos

Capítulo 7
Funções

Capítulo 8
Princípios da orientação a objetos

Capítulo 9
Introdução ao Biopython

Capítulo 10
Sequências

Capítulo 11
BLAST

Capítulo 12
PDB

Capítulo 13
Visualização de dados em Python

Capítulo 14
Outras coisas interessantes que se pode fazer com Biopython

Capítulo 15
Hierarquia do Biopython

Por favor, nos cite:

MARIANO, D. C. B.; BARROSO, J. R. P. M. ; CORREIA, T. S. ; de MELO-MINARDI, R. C. . Introdução à Programação para Bioinformática com Biopython. 3. ed. North Charleston, SC (EUA): CreateSpace Independent Publishing Platform, 2015. v. 1. 230p .

Por Diego Mariano

Doutor em Bioinformática pela Universidade Federal de Minas Gerais com atuação na área de ciência de dados e aprendizado de máquina aplicados ao aperfeiçoamento de enzimas usadas na produção de biocombustíveis. Mestre em Bioinformática, também pela UFMG, atuando na área de desenvolvimento de sistemas Web para montagem de genomas. Atualmente realiza estágio pós-doutoral no Departamento de Ciência da Computação da UFMG com foco em desenvolvimento de sistemas Web para Bioinformática, análise exploratória e visualização de dados. Tem conhecimentos nas linguagens: PHP, JavaScript, Python, R, Perl, HTML, CSS e SQL.