Introdução ao Python¶
Comentários¶
Comentários são trechos de código que são ignorados pelo interpretador ou compilador durante a execução do programa.
Eles são usados para explicar o que o código faz, tornando-o mais fácil de entender para outros desenvolvedores (ou para você mesmo no futuro).
Para criar um comentário basta usar # no início do comentário. O texto após o # não será lido pelo interpretador.
Para entender um pouco mais digite em seu notebook o seguinte código:
# aqui vamos refazer o cabeçalho utilizando variáveis
# aliás, você sabe quem sou eu?
No exemplo anterior vimos como criar um comentário com uma última linha. Caso queiramos escrever documentários com mais de uma linha podemos utilizar a seguinte notação:
# Este é um comentário
# que se estende por várias
# linhas.
Entretanto essa abordagem não é muito prática. Felizmente, é possível utilizar a notação de aspas triplas (''' ou """):
'''
Este é um comentário
que se estende por várias
linhas.
''';
Tarefa:
Agora use sua imaginação e crie o seu próprio cabeçalho em utilizando comentários.
Dica:
Use o comentário multi-linha para criar o seu cabeçalho.
Operadores¶
Em Python, podemos escrever expressões matemáticas como em qualquer outra calculadora (Como o MatLab, por exemplo). Expressões consistem de valores, como 2 e operadores, como o +.
Escreveremos 2+2 na célula abaixo, e vemos que a expressão irá assumir o valor final de 4.
2+2
4
Podemos usar diversos operadores para computar diversas expressões como quisermos, como listado na tabela abaixo.
| Operador | Operação | Exemplo | Resulta em |
|---|---|---|---|
** |
Expoente | 2 ** 3 |
8 |
% |
Resto | 22 % 8 |
6 |
// |
Divisão inteira | 22 // 8 |
2 |
/ |
Divisão | 22 / 8 |
2.75 |
* |
Multiplicação | 3 * 5 |
15 |
- |
Subtração | 5 - 2 |
3 |
+ |
Adição | 2 + 2 |
4 |
A ordem dos operadores da matemática do Python é similar à usada na matemática comum, ou seja, primeiro as potências (**), depois multiplicações e divisões (* e /) e por fim as somas e subtrações (+ e -), da esquerda para a direita. Podemos também usar parênteses. Agora, vamos tentar calcular o valor de algumas operações para exercitar o que foi aprendido.
Operações de somar, subtrair, multiplicar e dividir¶
A seguir execute as seguintes operações e observe o que acontece:
# Célula 1
2+2+3
# Célula 2
7-4
# Célula 3
3*9
# Célula 4
23/7
Divisão de parte inteira¶
A divisão de parte inteira retorna somente a parte inteira de uma divisão.
Execute as células abaixo e veja você mesmo:
# Considerando a divisão normal, /:
23/7
# Considerando a divisão de parte inteira, //:
23//7
Tarefa:
Agora tente resolver os cálculos abaixo utilizando a divisão normal e a divisão de parte inteira:
- $8\div 7$
- $50 \div 3$
Resto¶
Podemos encontrar o resto de uma divisão utilizando o operador %.
Tarefa:
Agora calcule o resto das seguintes operações:
- $23\div 7$
- $40 \div 4$
- $43 \div 3$
Potenciação¶
O operador ** permite calcular operação de exponenciação. No exemplo abaixo:
2 ** 5
32
O número 2 é a base e o número 5 é o exponente.
Tarefa:
Seguindo esta lógica calcule as seguintes expressões:
- $2^5$
- $2^3$
Raiz¶
No Python vanilla (Sem módulos ou extensões) não existe a operação de raiz. Entretanto podemos reescrever esta operação utilizando a operação de potênciação com números fracionários ou decimais. Por exemplo, para calcular $\sqrt{4}$ utilizamos:
4**0.5
2.0
Tarefa:
Usando essa mesma lógica calcule as seguintes expressões:
- $\sqrt[4]{256}$
- $\sqrt[3]{27}$
- $\sqrt{8}$
Dica:
Para calcular $\sqrt[3]{x}$ coloque o expoente (1/3) entre parênteses. Como mostra abaixo:
x**(1/3)
Parêntese e prioridade de operadores¶
Assim como na matemática, os parênteses tem prioridade na execução em comparação às outras operações. Por exemplo:
(5-1)*((7+1)/(3-1))
16.0
Assim como na matemática, no Python cada operação tem uma prioridade em relação às outras.
Abaixo tem-se a tabela de prioridade dos operadores:
| Prioridade | Operadores | Significado |
|---|---|---|
| 1 | () |
Parêntese |
| 2 | ** |
Potênciação |
| 3 | *, /, // e % |
Multiplicação, divisão, divisão inteira e resto |
| 4 | + e - |
Soma e subtração |
Tarefa:
Tente calcular as seguintes operações e observe como se comporta a prioridade dos operadores.
- $\frac{8}{2}\times (2+2)$
- $(2+3)\times 3^3$
- $7+7\div 7 + 7 \times 7 -7$
- $\sqrt[3]{4}$
- $\sqrt{9^2-4\times 3}$
- $\sqrt[3]{(9^2-4)\times3}$
Expressão sem sentido¶
O python não reconhece expressões que não fazem sentido, como a expressão abaixo.
Tente rodar a seguinte célula e explique o que aconteceu em uma célula em Markdown.
5+
O que aconteceu?
Dica:
Escreva a resposta em Markdown em uma célula de texto abaixo.
Tipos de dados¶
Existem diversos tipos de dados em Python que se comportam de diferente formas em expressões, os três tipos mais básicos são:
| Tipo de dado | Classe | Exemplo |
|---|---|---|
| Inteiro | int |
-2, -1, 0, 1, 2, 3, 4, 5 |
| Decimal (Ponto flutuante) | float |
-1.25, -1.0, -0.5, 0.0, 0.5, 1.0, 1.25 |
| Texto (String) | str |
'a', 'aa', 'aaa', 'Hello!', 'curso de python' |
Inteiros (int) se refere aos números inteiros, números em ponto flutuante (float) se refere a números com casa decimal e strings (str) são textos.
Note que o Python internamente chama inteiros, decimais e texto de int, float ou string.
Observação:
Note que as strings tem sempre aspas simples em suas extremidades como
'Isso é uma string'.
Escrevendo uma string¶
Podemos escrever a string python no modo código da seguinte forma:
'python'
'python'
Tarefa:
Agora escreva uma string Eu adoro Pizza no modo código.
Concatenando strings¶
Usamos o operador + para concatenar (juntar) duas ou mais strings:
"curso " + "de " + "Python"
'curso de Python'
Tarefa:
Agora concatene as seguintes strings para formar uma frase:
"O ""céu ""é ""Azul"
Concatenação proibida¶
O Python não consegue concatenar uma string e um número. Como por exemplo:
5 + 'abacate'
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[19], line 1 ----> 1 5 + 'abacate' TypeError: unsupported operand type(s) for +: 'int' and 'str'
Repetindo strings¶
O operador * permite repetir strings:
'abacaxi ' * 5
'abacaxi abacaxi abacaxi abacaxi abacaxi '
Tarefa:
Utilize operadores de string para gerar a seguinte frase:
O céu é Azul Azul Azul
Utilize somente as strings:
- "O "
- "céu "
- "é "
- "Azul"
Observe que foi retornado um TypeError (Erro de tipo) indicando que não é possível fazer a operação + entre o int e str.
Conversão de dados¶
A ação de transformar uma variável de um tipo (int, float e string) em outro tipo é chamada de conversão de dados. Para fazer essa conversão podemos utilizar as funções str, int e float.
| Função | Descrição |
|---|---|
str() |
Transforma uma variável em uma string |
int() |
Transforma uma variável em um inteiro |
float() |
Transforma uma variável em um ponto flutuante |
Tarefa:
Agora faça as seguintes conversões:
0para string-3.14para string"-99"para inteiro1.25para inteiro1.99para inteiro'3.14'para ponto flutuante10para inteiro
Concatenando strings e números¶
Na seção anterior vimos que a operação 5 + 'abacate' não é permitida no Python, pois não é possível concatenar um inteiro com uma string. Porém podemos resolver este problema da seguinte forma:
str(5) + ' abacate'
'5 abacate'
Tarefa:
Corrija a célula abaixo utilizando as funções de conversão:
'Eu tenho ' + 5 + ' anos de idade.'
A função type()¶
A função type() indica o tipo de um determinado dado (ou a classe do dado). Veja os exemplos abaixo:
type(2.0)
float
type("Especialista em Drone")
str
type(-5)
int
Tarefa:
Descubra os tipos das seguintes expressões:
| Expressões | ||
|---|---|---|
0.0 |
123+1.23 |
9%2 |
-3.14 |
7/3 |
-11 |
'-99' |
7.0j |
5+10j |
Variáveis¶
Variáveis funcionam como caixas em que podemos guardar o que quisermos utilizando o operador de atribuição, =. Veja os exemplos abaixo:
a = 40
b = 2
a+b
42
Tarefa:
Repita o exemplo acima considerando três variáveis a, b e c. Atribua os valores delas em 5, 10 e 15.
Expressões em atribuições de variáveis¶
É possível criar novas variáveis que são resultado de operações com outras variáveis:
texto_1 = 'Olá '
texto_2 = 'Mundo!'
texto_final = texto_1 + texto_2
# Para mostrar o valor da variável basta escrever a variável no final da célula
texto_final
'Olá Mundo!'
Tarefa:
A equação de segundo grau tem o seguinte formato:
$$ ax^2+bx+c=0 $$
Podemos encontrar as duas soluções, $x_1$ e $x_2$ deste tipo de equação com a fórmula de Baskara:
$$ \Delta = b^2-4ac $$
$$ x_1=\frac{-b+ \sqrt{\Delta}}{2a} $$
$$ x_2=\frac{-b-\sqrt{\Delta}}{2a} $$
Utilizando o conceito de variáveis, crie um programa capaz de resolver uma equação de segundo grau com $a=1$, $b=4$ e $c=7$.
Atribuição em variável existente¶
Considere o exemplo abaixo:
Células 1 e 2: Primeira atribuição
# Célula 1
mantega = 40
mantega
40
# Célula 2
ovos = 2
ovos
2
As variáveis mantega e ovos não existem previamente na memória. Quando são atribuídos valores para elas, o Python cria esta variáveis e atribuí os seus respectivos valores.
Células 3 e 4: Variáveis existentes
# Célula 3
mantega+ovos
42
# Célula 4
mantega+ovos+mantega
82
Neste caso o Python pesquisa se a já existe variáveis na memória e faz as operações considerando estas variáveis.
Célula 5 e 6: Substituição dos valores
# Célula 5
ovos = 10
ovos
10
Na célula 5 o valor da variável ovos foi substuido pelo valor 10.
# Célula 6
mantega=mantega+2
mantega
44
Na célula 6 o valor da variável mantega foi substuida pela expressão mantega+2. Observe que foi utilizado o próprio valor armazenado para atualizar a variável.
Variável underline¶
Caso a última linha de uma célula for um valor ou uma expressão. O Jupyter irá imprimir o valor desta expressão abaixo da célula e armazenar o valor desta expresão na variável _. Vamos verificar isso na prática. Crie duas células:
# Célula 1: atribuição da variável _
2
2
# Célula 2: Some em 3 a variável _ e salve o resultado nela mesma
_
2
Dica:
Para quem tem familiaridade com o MATLAB a variável
_é equivalente à variávelans.
Tarefa:
Execute as células na seguinte ordem:
Célula 1 $\rightarrow$ Célula 2 $\rightarrow$ Célula 2 $\rightarrow$ Célula 2 $\rightarrow$ Célula 1 $\rightarrow$ Célula 2 $\rightarrow$ Célula 1
Tarefa:
Reinicie o Kernel e adicione a expresão print() no final da célula 1 (Abaixo). Execute a Célula 1 e a Célula 2. O que aconteceu? Justifique sua Resposta.
Nome das variáveis¶
Os nomes de variáveis só podem ser uma palavra, com acentos, com números e underline _. Nomes de variáveis não podem começar com números.
Observação:
Diferentemente das outras linguagens é possível declarar variáveis com acentos, pois o Python 3 usa a codificação UTF8 (Variáveis como C usam codificação ASCII).
Tarefa:
Escreva e execute as seguintes expressões:
Primeira_variavel=11a_variavel=1Primeira variavel=1Primeira_variável=1明=1Atribuição=1
Escreva um comentário em Python no topo de cada célula explicando o porquê esta sintáxe funciona ou não funciona.
Atribuição múltipla¶
## Atribui a=2 e b=3
a, b = 2, 3
## Mostra os valores de a e b abaixo da célula
"O valor de a é "+str(a)+" e o valor de b é " +str(b)+"."
'O valor de a é 2 e o valor de b é 3.'
Trocando o valor de duas variáveis¶
No Python podemos utilizar a atribuição múltipla para trocar o valor de duas ou mais variáveis sem a necessidade de criar uma outra variável auxiliar. Veja e execute o exemplo abaixo:
# Atribui o valor de a=2 e b=3
a, b = 2, 3
# Troca os valores de a e b
a, b = b, a
## Mostra os valores de a e b abaixo da célula
"O valor de a é "+str(a)+" e o valor de b é " +str(b)+"."
'O valor de a é 3 e o valor de b é 2.'
Tarefa:
Crie um código capaz de trocar os valores das variáveis $a=b$, $b=c$ e $c=a$. Inicialize essas variáveis com os valores $a=6$, $b=7$ e $c=10$.