Nesta aula, vamos ver como utilizar o conceito de Notebooks para aprendermos o básico da linguagem Python.
Vamos ver como realizar operações matemáticas básicas, como importar bibliotecas para realizar comandos mais específicos a cada domínio, e vamos estudar um pouco da sintaxe básica da linguagem e conceitos de programação, como blocos de repetição (for, while) e condicionais (if).
É claro que não será um tratamento exaustivo da linguagem; estudaremos estes conceitos durante todo o curso, e também veremos outras estruturas mais avançadas conforme houver necessidade para a resolução dos nossos problemas.
In [1]:
a = 1
b = 7
print(a+b)
(Observe que podemos incluir várias linhas em uma mesma célula em um Notebook, usando a tecla ENTER. Para executar uma célula e passar para a próxima, usamos SHIFT+ENTER)
As variáveis não precisam ser "declaradas" em Python, e seu tipo não é fixo.
In [2]:
a = 1
In [3]:
print(a)
In [4]:
a = "Teste"
In [5]:
print(a)
No entanto, o Python só reconhece variáveis às quais algum valor foi atribuido:
In [6]:
print(c)
As operações matemáticas estão bem definidas:
In [7]:
a = 5
b = 2
a+b
Out[7]:
In [8]:
a-b
Out[8]:
In [9]:
b-a
Out[9]:
In [10]:
b*a
Out[10]:
A potenciação é realizada usando-se o operador **
In [11]:
b**a
Out[11]:
In [12]:
b/a
Out[12]:
Atenção: o Python converteu automaticamente os números (que eram inteiros) em números reais, para que a divisão pudesse ser realizada. A divisão só se comporta assim no Python 3 (no Python 2, essa conversão não é automática).
In [13]:
palavra = "maria julia"
In [14]:
print(palavra)
As strings, como chamamos estas sequências de caracteres, são tratadas pelo Python como objetos. (Na realidade, todos os tipos de dados em Python podem ser vistos como objetos! Discutiremos isso mais à frente)
Para entender o que podemos fazer com estes objetos, usamos
In [15]:
dir(palavra)
Out[15]:
Para aplicarmos algum desses métodos à variável palavra, vamos usar a seguinte sintaxe:
In [16]:
palavra.capitalize()
Out[16]:
In [17]:
palavra.upper()
Out[17]:
Observe que na linha anterior, a aplicação do método upper à string palavra não modificou a string original:
In [18]:
palavra
Out[18]:
In [19]:
palavra.islower()
Out[19]:
Para sobrescrevermos o novo valor à variável palavra, usamos
In [20]:
palavra = palavra.upper()
In [21]:
palavra
Out[21]:
In [22]:
palavra.islower()
Out[22]:
Podemos chamar métodos de maneira encadeada:
In [23]:
palavra.lower().isupper()
Out[23]:
Em Python, diferenciamos entre métodos, que são aplicados a objetos (sempre da forma objeto.metodo()) e funções, que tem a forma funcao(argumento)
In [24]:
print(palavra.upper())
Podemos descobrir quantos caracteres estão na string palavra, usando a função len
In [25]:
len(palavra)
Out[25]:
(Para uma explicação de por que usamos uma função len ao invés de um método, veja http://lucumr.pocoo.org/2011/7/9/python-and-pola/)
Se já sabemos o nome do método que desejamos usar, podemos obter mais informações sobre ele usando a função help:
In [26]:
help(palavra.split)
In [27]:
palavra.split?
O resultado do método split é uma lista de strings:
In [28]:
palavra.split()
Out[28]:
Se quisermos separar palavras usando outros caracteres que não sejam o espaço (whitespace), podemos indicar qual separador a ser usado:
In [29]:
palavra = "Melissa: dois pontos"
In [30]:
palavra.split()
Out[30]:
In [31]:
palavra.split(sep=":")
Out[31]:
In [32]:
palavra.split(sep=" ")
Out[32]:
Na verdade, uma string pode ser pensada como uma lista de letras; assim, podemos acessar cada letra separadamente, como um dos itens dessa lista. (No Python, o primeiro elemento de uma lista tem índice 0)
In [33]:
palavra[2]
Out[33]:
No entanto, uma lista é um tipo de objeto distinto em Python. Podemos transformar uma string em uma lista através da função list:
In [34]:
list(palavra)
Out[34]:
In [35]:
frase = "O dia está lindo!"
O método rstrip, associado a uma string, remove o caracter escolhido pelo usuário do final da string.
In [36]:
frase = frase.rstrip("!")
In [37]:
frase
Out[37]:
In [38]:
pedacos = frase.split()
In [39]:
print(pedacos)
A função type informa que tipo de objeto temos:
In [40]:
type(pedacos)
Out[40]:
In [41]:
type(frase)
Out[41]:
(str, na linha acima, indica que frase é um objeto do tipo string.)
In [42]:
palavra = "melissa"
In [43]:
lista_palavra = ["melissa"]
Observe que palavra é uma string, e por isso os métodos que podem ser aplicados a esta variável são os métodos associados a um objeto do tipo string, enquanto que lista_palavra é uma lista, com métodos associados a um objeto do tipo lista:
In [44]:
dir(lista_palavra)
Out[44]:
Também podemos saber quantos itens tem uma lista:
In [45]:
len(lista_palavra)
Out[45]:
In [46]:
letras = list(palavra)
In [47]:
print(letras)
O acesso a cada elemento de uma lista é feito da mesma maneira como acessamos os caracteres de uma string (lembrando que o índice do primeiro elemento de uma lista, no Python, é 0)
In [48]:
letras[0]
Out[48]:
Alguns métodos especiais que são bastante interessantes:
O método append acrescenta ao final da lista algum item (neste caso, uma string)
In [49]:
pedacos.append("!")
In [50]:
pedacos
Out[50]:
In [51]:
pedacos.append("!")
In [52]:
pedacos
Out[52]:
O método insert acrescenta um item à lista, na posição indicada:
In [53]:
pedacos.insert(3,"mais")
In [54]:
pedacos
Out[54]:
Em Python, o operador del pode ser usado para excluir um item de uma lista, dado seu índice:
In [55]:
del pedacos[3]
In [56]:
pedacos
Out[56]:
No entanto, é mais usual excluirmos um item da lista usando o método pop (que exclui um item selecionado pelo seu índice, assim como o operador del) ou o método remove (que remove um item da lista selecionado pelo seu valor):
In [57]:
pedacos.remove("está")
In [58]:
pedacos
Out[58]:
O método pop é interessante pois retorna, ao final de sua execução, o valor do item que foi removido:
In [59]:
pedacos.pop(3)
Out[59]:
Podemos também descobrir o índice de um item da lista, dado seu valor:
In [60]:
pedacos.index("dia")
Out[60]:
Para descobrirmos se determinado valor está em uma lista, usamos a seguinte sintaxe:
In [61]:
"!" in pedacos
Out[61]:
Observe que na lista pedacos, cada entrada também pode ser vista como uma lista!
In [62]:
pedacos[1]
Out[62]:
In [63]:
pedacos[1][0]
Out[63]:
In [64]:
pedacos[0]
Out[64]:
(Fim da Aula 1, ministrada em 13/09/2016)
In [ ]: