Escolar Documentos
Profissional Documentos
Cultura Documentos
🔹 Definições de variáveis em
Python
A base de qualquer linguagem de programação é o conceito
de variável, um nome ou lugar na memória que reservamos
para que receba um valor.
<nome_da_variavel> = <valor>
Por exemplo:
idade = 56
nome = "Nora"
cor = "Azul"
Por exemplo:
minha_lista = [1, 2, 3, 4, 5]
print("Hello World!")
"Hello World!"
Integers
Os integers, ou números inteiros, são aqueles números que
não têm casas decimais. Você pode verificar se um número é
um inteiro com a função type(). Se o resultado for <class
'int'>, o número é inteiro.
Por exemplo:
>>> type(1)
<class 'int'>
>>> type(15)
<class 'int'>
>>> type(0)
<class 'int'>
>>> type(-46)
<class 'int'>
Floats
Floats são números de ponto flutuante ou números com
casas decimais. Você pode detectar isso visualmente ao ver
onde está o ponto decimal. Se chamarmos type() para
verificar o tipo de dados desses valores, teremos o seguinte
como resultado:
<class 'float'>
>>> type(4.5)
<class 'float'>
>>> type(5.8)
<class 'float'>
>>> type(2342423424.3)
<class 'float'>
>>> type(4.0)
<class 'float'>
>>> type(0.0)
<class 'float'>
>>> type(-23.5)
<class 'float'>
Complex
Complex, ou números complexos, têm uma parte real e outra
imaginária, denotada com um j. Você pode criar números
complexos em Python com complex(). O primeiro argumento
será a parte real e o segundo será a parte imaginária.
>>> complex(4, 5)
(4+5j)
>>> complex(6, 8)
(6+8j)
>>> complex(0, 0)
0j
>>> complex(5)
(5+0j)
>>> complex(0, 4)
4j
Strings em Python
Strings são incrivelmente úteis em Python. Elas contêm uma
sequência de caracteres e são usadas, em geral, para
representar texto no código.
Por exemplo:
"Hello World!"
'Hello World!'
Por exemplo:
"45678"
"meu_email@email.com"
"#EuAmoPython"
Indexação de strings
Podemos usar os índices para acessar os caracteres de uma
string em nosso programa em Python. Um índice é um
número inteiro que representa uma posição específica na
string. O índice está associado ao caractere daquela posição.
Índice: 0 1 2 3 4
Por exemplo:
>>> minha_string[0]
'H'
>>> minha_string[1]
'e'
>>> minha_string[2]
'l'
>>> minha_string[3]
'l'
>>> minha_string[4]
'o'
>>> minha_string[-1]
'o'
>>> minha_string[-2]
'l'
>>> minha_string[-3]
'l'
>>> minha_string[-4]
'e'
>>> minha_string[-5]
'H'
<variável_string>[início:parada:passo]
início é o índice do primeiro caractere que será incluído na
"fatia". Por padrão, esse índice é o 0.
<variável_string>[início:parada]
Por exemplo:
>>> freecodecamp[2:8]
'eeCode'
>>> freecodecamp[0:3]
'fre'
>>> freecodecamp[0:4]
'free'
>>> freecodecamp[4:7]
'Cod'
>>> freecodecamp[4:8]
'Code'
>>> freecodecamp[8:11]
'Cam'
>>> freecodecamp[8:12]
'Camp'
>>> freecodecamp[8:13]
'Camp'
Por exemplo:
>>> freecodecamp[0:9:2]
'feCdC'
>>> freecodecamp[2:10:3]
'eoC'
>>> freecodecamp[1:12:4]
'roa'
>>> freecodecamp[4:8:2]
'Cd'
>>> freecodecamp[3:9:2]
'eoe'
>>> freecodecamp[1:10:5]
'rd'
>>> freecodecamp[10:2:-1]
'maCedoCe'
>>> freecodecamp[11:4:-2]
'paeo'
>>> freecodecamp[5:2:-4]
'o'
Além disso, podemos omitir um parâmetro para usar seu
valor padrão. Somente precisamos incluir os dois pontos (:)
correspondentes se omitirmos início, parada ou os dois:
# Início padrão
>>> freecodecamp[:8:2]
'feCd'
# Parada padrão
>>> freecodecamp[4::3]
'Cem'
'pmaCedoCeerf'
Por exemplo:
nome = "Nora"
linguagem_favorita = "Python"
O resultado é:
5 multiplicado por 2 é: 10
freecodecamp = "FREECODECAMP"
print(f"{freecodecamp.lower()}")
O resultado é:
freecodecamp
Métodos de strings
Strings têm métodos, que representam funcionalidades
comuns que foram implementadas pelos desenvolvedores do
Python, para que possamos usá-las em nossos programas
diretamente. Eles são muito úteis para realizarmos
operações comuns.
<variável_string>.<nome_do_método>(<argumentos>)
Por exemplo:
>>> freecodecamp.capitalize()
'Freecodecamp'
>>> freecodecamp.count("C")
2
>>> freecodecamp.find("e")
2
>>> freecodecamp.index("p")
11
>>> freecodecamp.isalnum()
True
>>> freecodecamp.isalpha()
True
>>> freecodecamp.isdecimal()
False
>>> freecodecamp.isdigit()
False
>>> freecodecamp.isidentifier()
True
>>> freecodecamp.islower()
False
>>> freecodecamp.isnumeric()
False
>>> freecodecamp.isprintable()
True
>>> freecodecamp.isspace()
False
>>> freecodecamp.istitle()
False
>>> freecodecamp.isupper()
False
>>> freecodecamp.lower()
'freecodecamp'
>>> freecodecamp.lstrip("f")
'reeCodeCamp'
>>> freecodecamp.rstrip("p")
'freeCodeCam'
>>> freecodecamp.swapcase()
'FREEcODEcAMP'
>>> freecodecamp.title()
'Freecodecamp'
>>> freecodecamp.upper()
'FREECODECAMP'
Booleanos em Python
Os valores booleanos são True e False em Python. Eles
devem começar com uma letra maiúscula para serem
reconhecidos como valores booleanos.
Por exemplo:
>>> type(True)
<class 'bool'>
>>> type(False)
<class 'bool'>
>>> type(true)
>>> type(false)
Listas em Python
Agora que tratamos dos tipos de dados básicos em Python,
começaremos a tratar das estruturas de dados integradas. A
primeira delas é a lista.
[1, 2, 3, 4, 5]
minha_lista = [1, 2, 3, 4, 5]
>>> minha_lista[0]
[1, 2, 3]
>>> minha_lista[1]
[4, 5, 6]
Listas aninhadas podem ser usadas para representar, por
exemplo, a estrutura de um tabuleiro de um jogo
bidimensional, onde cada número pode representar um
elemento diferente ou um bloco:
[0, 2, 0],
[1, 0, 3]]
Tamanho da lista
Podemos usar a função len() para saber o tamanho (length,
em inglês) de uma lista (o número de elementos que ela
contém).
Por exemplo:
>>> len(minha_lista)
<variável_lista>[<índice>] = <valor>
Por exemplo:
>>> letras
Por exemplo:
>>> minha_lista.append(5)
>>> minha_lista
[1, 2, 3, 4, 5]
Por exemplo:
>>> minha_lista.remove(3)
>>> minha_lista
[1, 2, 4]
>>> minha_lista.remove(3)
>>> minha_lista
[1, 2, 3, 4]
Indexação de listas
Podemos indexar uma lista do mesmo modo que indexamos
strings, com índices que começam em 0:
>>> letras[0]
'a'
>>> letras[1]
'b'
>>> letras[2]
'c'
>>> letras[3]
'd'
Divisão de listas
Também podemos obter uma parte/"fatia" de uma lista
usando a mesma sintaxe que utilizamos com as strings e
podemos omitir os parâmetros para usar seus valores
padrão. Agora, em vez de adicionar caracteres à fatia,
adicionaremos os elementos da lista.
<variável_lista>[início:parada:passo]
Por exemplo:
>>> minha_lista = ["a", "b", "c", "d", "e", "f", "g", "h",
"i"]
>>> minha_lista[2:6:2]
['c', 'e']
>>> minha_lista[2:8]
['c', 'd', 'e', 'f', 'g', 'h']
>>> minha_lista[1:10]
['b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
>>> minha_lista[4:8:2]
['e', 'g']
>>> minha_lista[::-1]
['i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']
>>> minha_lista[::-2]
['i', 'g', 'e', 'c', 'a']
>>> minha_lista[8:1:-1]
Métodos de listas
O Python também tem métodos de listas já implementados
para nos ajudar a realizar operações comuns com listas. Aqui
estão alguns exemplos dos métodos de listas mais
comumente usados:
>>> minha_lista = [1, 2, 3, 3, 4]
>>> minha_lista.append(5)
>>> minha_lista
[1, 2, 3, 3, 4, 5]
>>> minha_lista
[1, 2, 3, 3, 4, 5, 6, 7, 8]
>>> minha_lista
[1, 2, 15, 3, 3, 4, 5, 6, 7, 8, 2, 2]
>>> minha_lista.remove(2)
>>> minha_lista
[1, 15, 3, 3, 4, 5, 6, 7, 8, 2, 2]
>>> minha_lista.pop()
2
>>> minha_lista.index(6)
6
>>> minha_lista.count(2)
1
>>> minha_lista.sort()
>>> minha_lista
[1, 2, 3, 3, 4, 5, 6, 7, 8, 15]
>>> minha_lista.reverse()
>>> minha_lista
[15, 8, 7, 6, 5, 4, 3, 3, 2, 1]
>>> minha_lista.clear()
>>> minha_lista
[]
Tuplas em Python
Para definir uma tupla em Python, usamos os parênteses ()
e separamos os elementos com vírgulas. É recomendado
adicionar um espaço após cada vírgula para tornar o código
mais legível.
(1, 2, 3, 4, 5)
minha_tupla = (1, 2, 3, 4, 5)
Indexação de tuplas
Podemos acessar cada elemento de uma tupla com seu
índice correspondente:
>>> minha_tupla[0]
1
>>> minha_tupla[1]
2
>>> minha_tupla[2]
3
>>> minha_tupla[3]
>>> minha_tupla[-1]
4
>>> minha_tupla[-2]
3
>>> minha_tupla[-3]
2
>>> minha_tupla[-4]
>>> len(minha_tupla)
Tuplas aninhadas
As tuplas podem conter valores de qualquer tipo de dados,
até mesmo listas e outras tuplas. Essas tuplas internas são
chamadas de tuplas aninhadas.
Por exemplo:
>>> minha_tupla = ([1, 2, 3], (4, 5, 6))
>>> minha_tupla[0]
[1, 2, 3]
>>> minha_tupla[1]
(4, 5, 6)
Divisão de tuplas
Podemos dividir/"fatiar" uma tupla do mesmo modo que
fizemos com listas e strings. O mesmo princípio e as
mesmas regras são aplicáveis.
<variável_tupla>[início:parada:passo]
Por exemplo:
>>> minha_tupla[3:8]
(7, 8, 9, 10)
>>> minha_tupla[2:9:2]
(6, 8, 10)
>>> minha_tupla[:8]
(4, 5, 6, 7, 8, 9, 10)
>>> minha_tupla[:6]
(4, 5, 6, 7, 8, 9)
>>> minha_tupla[:4]
(4, 5, 6, 7)
>>> minha_tupla[3:]
(7, 8, 9, 10)
>>> minha_tupla[2:5:2]
(6, 8)
>>> minha_tupla[::2]
(4, 6, 8, 10)
>>> minha_tupla[::-1]
(10, 9, 8, 7, 6, 5, 4)
>>> minha_tupla[4:1:-1]
(8, 7, 6)
>>> minha_tupla.index(7)
Atribuição de tuplas
Em Python, temos um recurso muito interessante, chamado
de atribuição de tuplas. Com esse tipo de atribuição,
podemos atribuir valores a diversas variáveis em uma única
linha.
Por exemplo:
# Atribuição de tuplas
>>> a, b = 1, 2
>>> a
1
>>> b
>>> a = 1
>>> b = 2
>>> a
2
>>> b
Dicionários em Python
Agora, entraremos no tópico dos dicionários. Esta estrutura
de dados integrada nos permite criar pares de valores, onde
um valor está associado ao outro.
3": 678}
baixo"}
Tamanho do dicionário
Para obter o número de pares chave-valor, usamos a função
len():
>>> len(meu_dicionario)
Por exemplo:
print(meu_dicionario["a"])
<variável_com_dicionário>[<chave>] = <valor>
Por exemplo:
>>> meu_dicionario = {"a": 1, "b": 2, "c": 3,
"d": 4}
>>> meu_dicionario["b"] = 6
<variável_com_dicionário>[<nova_chave>] =
<valor>
Por exemplo:
>>> meu_dicionario["e"] = 5
Agora, o dicionário tem o novo par chave-valor:
del <variável_com_dicionário>[<chave>]
For example:
Métodos de dicionário
Estes são alguns exemplos dos métodos de dicionários mais
comumente usados:
>>> meu_dicionario.get("c")
3
>>>meu_dicionario.items()
dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
>>>meu_dicionario.keys()
dict_keys(['a', 'b', 'c', 'd'])
>>> meu_dicionario.pop("d")
4
>>> meu_dicionario.popitem()
('c', 3)
>>> meu_dicionario
{'a': 1, 'b': 2}
>>> meu_dicionario
{'a': 1, 'b': 2, 'f': 25}
>>> meu_dicionario.clear()
>>> meu_dicionario
{}
🔸 Operadores em Python
Ótimo. Agora que você conhece a sintaxe dos tipos de dados
básicos e das estruturas de dados integradas do Python,
começaremos a ver os operadores em Python. Eles são
essenciais para realizar operações e formar expressões.
Adição: +
>>> 5 + 6
11
>>> 0 + 6
6
>>> 3.4 + 5.7
9.1
Subtração: -
>>> 5 - 6
-1
>>> 10 - 3
7
>>> 5 - 6
-1
>>> 4.5 - 7
-2.5
-14.0
Multiplicação: *
>>> 5 * 6
30
>>> 6 * 7
42
>>> 10 * 100
1000
>>> 4 * 0
0
>>> 4 * (-6)
-24
>>> "Hello" * 4
'HelloHelloHelloHello'
>>> "Hello" * 0
''
>>> "Hello" * -1
''
Potenciação: **
>>> 6 ** 8
1679616
>>> 5 ** 2
25
>>> 4 ** 0
1
>>> 16 ** (1/2)
4.0
>>> 16 ** (0.5)
4.0
0.3333333333333333
Divisão: /
>>> 25 / 5
5.0
>>> 3 / 6
0.5
>>> 0 / 5
0.0
>>> 1 / 2
0.5
>>> 6 / 7
0.8571428571428571
>>> -3 / -4
0.75
>>> 3 / -4
-0.75
>>> -3 / 4
-0.75
>>> 5 / 0
Divisão de inteiros: //
Esse operador retorna um inteiro se os operandos forem. Se
forem floats, o resultado será um float com .0 como a parte
decimal, pois ele trunca a parte decimal.
>>> 5 // 6
0
>>> 8 // 2
4
>>> -4 // -5
0
>>> -5 // 8
-1
>>> 0 // 5
0
440
Módulo: %
>>> 1 % 5
1
>>> 2 % 5
2
>>> 3 % 5
3
>>> 4 % 5
4
>>> 5 % 5
0
>>> 5 % 8
5
>>> 3 % 1
0
>>> 15 % 3
0
>>> 17 % 8
1
>>> 2568 % 4
0
>>> 245 % 15
5
>>> 0 % 6
0
2.3
Operadores de comparação
Esses operadores são:
>>> 5 > 6
False
>>> 10 > 8
True
>>> 8 > 8
False
>>> 8 >= 5
True
>>> 8 >= 8
True
>>> 5 < 6
True
>>> 10 < 8
False
>>> 8 < 8
False
>>> 8 <= 5
False
>>> 8 <= 8
True
>>> 8 <= 10
True
>>> 56 == 56
True
>>> 56 == 78
False
>>> 34 != 59
True
>>> 67 != 67
False
True
>>> a = 1
>>> b = 2
>>> a < b
True
>>> a <= b
True
>>> a > b
False
>>> a >= b
False
>>> a == b
False
>>> a != b
True
>>> a = 1
>>> b = 2
>>> c = 3
True
Operadores lógicos
Existem três operadores lógicos em Python: and, or e not
("e", "ou" e "não", respectivamente). Cada um desses
operadores tem sua própria tabela verdade e elas são
essenciais para se trabalhar com condicionais.
O operador and:
False
O operador or:
False
O operador not:
True
Por exemplo:
>>> a = 6
>>> b = 3
False
Operadores de atribuição
Operadores de atribuição são usados para atribuir um valor a
uma variável.
Por exemplo:
>>> x = 3
>>> x
3
>>> x += 15
>>> x
18
>>> x -= 2
>>> x
16
>>> x *= 2
>>> x
32
>>> x %= 5
>>> x
2
>>> x /= 1
>>> x
2.0
>>> x //= 2
>>> x
1.0
>>> x **= 5
>>> x
1.0
Operadores de associação
Você pode verificar se um elemento está ou não em uma
sequência com os operadores in e not in. O resultado será
True ou False.
Por exemplo:
>>> 5 in [1, 2, 3, 4, 5]
True
>>> 8 in [1, 2, 3, 4, 5]
False
>>> 5 in (1, 2, 3, 4, 5)
True
>>> 8 in (1, 2, 3, 4, 5)
False
False
True
🔹 Condicionais em Python
Vejamos agora como podemos escrever condicionais para
fazer com que partes do nosso código sejam executadas (ou
não) com base em uma condição ser True ou False.
Instruções if em Python
Esta é a sintaxe de uma instrução if básica:
if <condição>:
<código>
Se a condição for True (verdadeira), o código será
executado. Do contrário, se ela for False (falsa), o código não
será executado.
Condição falsa
x = 5
if x > 9:
print("Hello, World!")
Condição verdadeira
Aqui temos outro exemplo. Agora, a condição é True:
cor = "Azul"
if cor == "Azul":
O resultado será:
x = 5
if x > 9:
print("Olá!")
print("Fim")
x = 15
if x > 9:
print("Olá!")
print("Fim")
O resultado será:
Olá!
Fim
Exemplos de condicionais
Este é um outro exemplo de condicional:
estacao_favorita = "Verão"
if estacao_favorita == "Verão":
estacao_favorita = "Inverno"
if estacao_favorita == "Verão":
if <condição>:
<código>
else:
<código>
💡 Dica: observe que os dois blocos de código são
indentados (if e else). Isso é essencial para que o Python
consiga diferenciar entre o código que pertence ao programa
principal e o código que pertence ao condicional.
Condição verdadeira
x = 15
if x > 9:
print("Olá!")
else:
print("Tchau!")
print("Fim")
O resultado é:
Olá!
Fim
Condição falsa
Por outro lado, a instrução else é executada quando a
condição é False.
x = 5
if x > 9:
print("Olá!")
else:
print("Tchau!")
print("Fim")
Tchau!
Fim
if x < 9:
print("Olá!")
print("Fim")
Olá!
Fim
x = 13
if x < 9:
print("Olá!")
print("Fim")
O resultado é:
Fim
x = 25
if x < 9:
print("Olá!")
print("Fim")
O resultado será:
Tchau!
Fim
if estacao_favorita == "Inverno":
<código>
<código>
for i in range(5):
print(i)
Resultado:
0
1
2
3
4
💡 Dica: a variável de laço é atualizada automaticamente.
>>> for j in range(15):
print(j * 2)
Resultado:
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
print("Olá" * num)
Resultado:
Olá
OláOlá
OláOláOlá
OláOláOláOlá
OláOláOláOláOlá
OláOláOláOláOláOlá
OláOláOláOláOláOláOlá
print(minha_lista[i])
Resultado:
a
b
c
d
print(i)
Resultado:
2
3
4
5
6
7
8
Código:
print("Python" * j)
Resultado:
PythonPython
PythonPythonPython
PythonPythonPythonPython
Código:
print(minha_lista[i])
Resultado:
Código:
print(i)
Resultado:
3
5
7
9
11
13
15
Código:
print(j)
Resultado:
10
9
8
7
Código:
print(minha_lista[i])
Resultado:
g
f
e
O
l
á
,
m
u
n
d
o
!
Podemos também iterar sobre cópias modificadas da string
chamando o método de string onde especificamos o iterável
no laço for. Isso atribuirá uma cópia da string como iterável
que será usada para as iterações, desse modo:
print(char)
h
e
l
l
O
L
Á
Iterar sobre listas e tuplas
>>> minha_lista = [2, 3, 4, 5]
print(num)
O resultado é:
2
3
4
Código:
print("Par")
else:
print("Ímpar")
Resultado:
Par
Ímpar
Par
Ímpar
<código>
Por exemplo:
>>> meu_dicionário = {"a": 1, "b": 2, "c": 3}
a
b
<código>
For example:
<variável_de_dicionário>.items():
<código>
a 1
b 2
c 3
Se definirmos somente uma variável do laço, essa variável
terá uma tupla com o par chave-valor:
print(par)
('a', 1)
('b', 2)
('c', 3)
A instrução break
A instrução break é usada para interromper o laço
imediatamente.
print("Par:", elemento)
print("break")
break
else:
print("Ímpar:", elemento)
Ímpar: 1
Par: 2
break
A instrução continue
A instrução continue é usada para ignorar o resto da iteração
atual.
print("continue")
continue
print("Ímpar:", elemento)
Ímpar: 1
continue
Ímpar: 3
continue
Ímpar: 5
Por exemplo:
minha_lista2):
print(elem1, elem2)
1 5
2 6
3 7
4 8
Por exemplo:
print(i, elem)
0 5
1 6
2 7
3 8
>>> palavra = "Olá"
print(i, char)
0 O
1 l
2 á
>>> minha_lista
print(i, char)
2 O
3 l
4 á
A instrução else
Os laços for também têm uma instrução else. Você pode
adicionar essa instrução ao laço se quiser executar um bloco
de código específico quando o laço completa todas as suas
iterações sem encontrar a instrução break.
minha_lista = [1, 2, 3, 4, 5]
print("Encontrado")
break
else:
print("Não encontrado")
O resultado é:
Não encontrado
print("Encontrado")
break
else:
print("Não encontrado")
O resultado é:
Encontrado
while <condição>:
<código>
Por exemplo:
>>> x = 6
print(x)
x += 1
6
7
8
9
10
11
12
13
14
>>> x = 4
print("Olá" * x)
x -= 1
OláOláOláOlá
OláOláOlá
OláOlá
Olá
>>> num = 5
print("*" * num)
num -= 2
*****
***
*
Break e continue
Também podemos usar break e continue com os laços while
e eles funcionam da mesma maneira:
Por exemplo:
>>> x = 5
if x % 2 == 0:
print("Par:", x)
break
print(x)
x += 1
Par: 6
>>> x = 5
if x % 2 == 0:
x += 1
continue
print("Ímpar:", x)
x += 1
Ímpar: 5
Ímpar: 7
Ímpar: 9
Ímpar: 11
Ímpar: 13
A instrução else
Também podemos adicionar uma instrução else a um laço
while. Se break for encontrado, a instrução else não é
executada, mas se for encontrado, a instrução else é
executada.
x = 5
if x % 2 == 0:
break
print(x)
x += 2
else:
print("Todos os números eram ímpares")
Este é o resultado
5
7
9
11
13
x = 5
Por exemplo:
>>> x = 5
print(x)
5
5
5
5
5
5
5
5
5
.
.
.
print(i, j)
0 0
0 1
1 0
1 1
2 0
2 1
print(f"i = {i}")
for j in range(2):
print("Laço interno")
print(f"j = {j}")
i = 1
Laço interno
j = 0
Laço interno
j = 1
===> Laço externo
i = 2
Laço interno
j = 0
Laço interno
j = 1
>>> num_linhas = 5
print("*", end="")
print()
*****
****
***
**
>>> i = 5
j = 0
while j < 2:
print(i, j)
j += 1
i -= 1
5 0
5 1
4 0
4 1
3 0
3 1
2 0
2 1
1 0
1 1
<código>
def imprimir_padrao():
tamanho = 4
for i in range(tamanho):
print("*" * tamanho)
>>> imprimir_padrao()
****
****
****
****
def boasvindas_estudante(nome):
>>> boasvindas_estudante("Nora")
def imprimir_padrao(num_linhas):
for i in range(num_linhas):
print()
>>> imprimir_padrao(3)
***
**
*
>>> imprimir_padrao(5)
*****
****
***
**
*
>>> imprimir_padrao(8)
********
*******
******
*****
****
***
**
>>> imprime_soma(4, 5)
9
>>> imprime_soma(8, 9)
17
>>> imprime_soma(0, 0)
0
>>> imprime_soma(3, 5)
print()
#
Como retornar um valor em Python
Ótimo. Agora que você já sabe definir uma função, vamos
ver como você pode trabalhar com instruções de retorno de
valores.
return <valor_a_retornar>
>>> area
20
def obter_primeiro_par(seq):
return elem
else:
return None
>>> valor1
>>> print(valor2)
None
print(a * b)
>>> imprimir_produto(4)
20
>>> imprimir_produto(3, 4)
12
💡 Dica: parâmetros com argumentos padrão têm de ser
definidos ao final da lista de parâmetros. Do contrário, você
verá este erro: SyntaxError: non-default argument follows
default argument.
print()
>>> imprimir_padrao(5)
*****
****
***
**
*
&
🔸 Recursão em Python
Uma função recursiva em Python é uma função que chama a
si mesma. Essas funções têm um caso base que interrompe
o processo recursivo e um caso recursivo que continua o
processo recursivo fazendo outra chamada recursiva.
def fatorial(n):
if n == 0 or n == 1:
return 1
else:
return n * fatorial(n-1)
def fibonacci(n):
if n == 0 or n == 1:
return n
else:
return 1
else:
🔹 Tratamento de exceções em
Encontrar uma potência recursivamente
Python
Um erro ou evento inesperado que ocorre enquanto um
programa está em execução é chamado de exceção. Graças
aos elementos que veremos em instantes, podemos evitar de
encerrar o programa de modo abrupto quando isso ocorre.
>>> 5 / 0
>>> 7 // 0
>>> 8 % 0
>>>minha_lista[15]
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
minha_lista[15]
>>>meu_dicionario["d"]
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
my_dict["d"]
KeyError: 'd'
if n == 0 or n == 1:
return 1
else:
return n * fatorial(n)
>>> fatorial(5)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
fatorial(5)
File "<pyshell#5>", line 5, in fatorial
return n * fatorial(n)
try:
<código_que_pode_gerar_a_exceção>
except:
<código_para_tratar_a_exceção_quando_ela_ocor
re>
try:
minha_lista = [1, 2, 3, 4]
print(minha_lista[indice])
except:
a = int(input("Insira a: "))
b = int(input("Insira b: "))
try:
divisao = a / b
print(divisao)
except:
O resultado é:
Insira a: 5
Insira b: 0
try:
<código_que_pode_gerar_uma_exceção>
except <tipo_de_exceção>:
<código_para_lidar_com_uma_exceção_se_ela_oco
rrer>
Por exemplo
try:
minha_lista = [1, 2, 3, 4]
print(minha_lista[índice])
a = int(input("Insira a: "))
b = int(input("Insira b: "))
try:
divisao = a / b
print(divisao)
except ZeroDivisionError: # especifica o tipo
try:
<código_que_pode_gerar_uma_exceção>
<código_para_lidar_com_uma_exceção_se_ela_oco
rrer>
Por exemplo:
try:
minha_lista = [1, 2, 3, 4]
print(minha_lista[indice])
except IndexError as e:
print("Exceção causada:", e)
Insira o índice: 15
a = int(input("Insira a: "))
b = int(input("Insira b: "))
try:
divisao = a / b
print(divisao)
try:
<código_que_pode_gerar_uma_exceção>
except:
<código_para_lidar_com_uma_exceção_se_ela_oco
rrer>
else:
<código_que_só_é_executado_se_não_houver_exce
ção_no_bloco_try>
Por exemplo:
a = int(input("Insira a: "))
b = int(input("Insira b: "))
try:
divisao = a / b
print(divisao)
1.25
Por exemplo:
a = int(input("Insira a: "))
b = int(input("Insira b: "))
try:
divisao = a / b
print(divisao)
O programa terminou!
O programa terminou!
class <nomeDaClasse>:
<nome_do_atributo_da_classe> = <valor>
Cabeçalho da classe
A primeira linha da definição da classe tem a palavra-chave
class e o nome da classe:
class Cachorro:
class Casa:
class Bola:
class Caminhao(Veiculo):
class Mae(MembroDaFamilia):
class Cachorro:
self.idade = idade
class Circulo:
def __init__(self):
self.raio = 1
Argumentos padrão
Também podemos atribuir valores padrão para os atributos e
dar ao usuário a opção se ele quiser personalizar o valor.
Este é um exemplo:
class Circulo:
self.raio = raio
# Valor padrão
>>> meu_circulo1 = Circulo()
# Valor personalizado
<variável_de_objeto>.<atributo>
Por exemplo:
# Definição de classe
>>> class Cachorro:
def __init__(self,
nome, idade):
self.nome = nome
self.idade = idade
# Criar instância
>>> meu_cachoro = Cachorro("Nora", 10)
# Acessar atributo
>>> meu_cachorro.nome
'Nora'
>>> meu_cachorro.idade
10
Por exemplo:
def __init__(self,
nome, idade):
self.nome = nome
self.idade = idade
>>> meu_cachorro.nome
'Nora'
# Atualizar o atributo
>>> meu_cachorro.nome = "Norinha"
>>> meu_cachorro.nome
'Norinha'
del <variável_de_objeto>.<atributo>
Por exemplo:
def __init__(self,
nome, idade):
self.nome = nome
self.idade = idade
>>> meu_cachorro.nome
'Nora'
>>>meu_cachorro.nome
Traceback (most recent call last):
File "<pyshell#77>", line 1, in <module>
meu_cachorro.nome
>>> meu_cachorro.nome
'Nora'
# Excluir a instância
>>> del meu_cachorro
>>> meu_cachorro
Traceback (most recent call last):
File "<pyshell#79>", line 1, in <module>
meu_cachorro
Por exemplo:
class Cachorro:
def __init__(self,
nome, idade):
self.nome = nome # Atributo público
class Cachorro:
# Atributos de classe
reino = "Animalia"
def __init__(self,
nome, idade):
self.nome = nome
self.idade = idade
<nome_da_classe>.<atributo>
Por exemplo:
reino = "Animalia"
>>> Cachorro.reino
'Animalia'
💡 Dica: você pode usar essa sintaxe dentro da própria
classe.
<nome_da_classe>.<atributo> = <valor>
Por exemplo:
reino = "Animalia"
>>> Cachorro.reino
'Animalia'
>>> Cachorro.reino
'Novo reino'
Como excluir um atributo de classe
Usamos del para excluir um atributo de classe. Por exemplo:
reino = "Animalia"
def __init__(self,
nome, idade):
self.nome = nome
self.idade = idade
>>> Cachorro.reino
'Animalia'
>>>Cachorro.reino
Traceback (most recent call last):
File "<pyshell#88>", line 1, in <module>
Cachorro.reino
class <NomeDaClasse>:
# Atributos da classe
# __init__
<código>
class Cachorro:
def __init__(self,
nome, idade):
self.nome = nome
self.idade = idade
def latir(self):
<variável_de_objeto>.<método>(<argumentos>)
Por exemplo:
# Criar a instância
>>> meu_cachorro = Cachorro("Nora", 10)
# Chamar o método
>>> meu_cachorro.latir()
class Jogador:
def __init__(self,
nome):
self.nome = nome
self.velocidade = 50
def aumentar_velocidade(self, valor):
self.velocidade += valor
# Criar instância
>>> meu_jogador = Jogador("Nora")
# Aumentar a velocidade
>>> meu_jogador.aumentar_velocidade(5)
# Confirmar a mudança
>>> meu_jogador.velocidade
55
@property
def <nome_da_propriedade>(self):
return self.<atributo>
@<nome_da_propriedade>.setter
def <nome_da_propriedade>(self, <parâmetro>):
self.<atributo> = <parâmetro>
E um método de exclusão para excluir o atributo:
@<nome_da_propriedade>.deleter
def <nome_da_propriedade>(self):
del self.<atributo>
Este é um exemplo:
class Cachorro:
def __init__(self,
nome):
self._nome = nome
@property
def nome(self):
return self._nome
@nome.setter
def nome(self,novo_nome):
self._nome = novo_nome
@nome.deleter
def nome(self):
del self._nome
def __init__(self,
nome):
self._nome = nome
@property
def nome(self):
print("Chamando o getter")
return self._nome
@nome.setter
self._nome = novo_nome
@nome.deleter
def nome(self):
print("Chamando o deleter")
del self._nome
>>>meu_cachorro.nome
Chamando o getter
'Nora'
>>>meu_cachorro.nome = "Norinha"
Chamando o setter
>>>meu_cachorro.nome
Chamando o getter
'Norinha'
Chamando o deleter
<variável_de_arquivo>:
<código>
print(linha)
ou...
print(linha)
💡 Dica: é isso! Podemos iterar sobre as linhas do arquivo
usando um laço for. O caminho do arquivo pode ser relativo
ao script em Python que estamos executando ou pode ser
um caminho absoluto.
<variável_de_arquivo>:
<código>
Por exemplo:
Código
Python
Verde
Incrível
Por exemplo:
palavras = ["Código", "Python", "Verde", "Incrível"]
arquivo.write(palavra + "\n")
Código
Python
Verde
Incrível
Código
Python
Verde
Incrível
import os
if os.path.exists("<caminho_do_arquivo>"):
os.remove("<caminho_do_arquivo>")
else:
<código>
Por exemplo:
import os
if os.path.exists("frases_famosas.txt"):
os.remove("frases_famosas.txt")
else:
Você pode ter percebido que a primeira linha diz import os.
Essa é uma instrução de import. Vejamos a utilidade dessa
instrução e como você pode trabalhar com ela.
Primeira alternativa:
import <nome_do_módulo>
Por exemplo:
import math
5.0
Segunda alternativa:
Por exemplo:
import math as m
5.0
Terceira alternativa:
Por exemplo:
5.0
Quarta alternativa:
Por exemplo:
from math import sqrt as raiz_quadrada
5.0
Quinta alternativa:
Por exemplo:
>>> sqrt(25)
5.0
>>> factorial(5)
120
>>> floor(4.6)
4
>>> gcd(5, 8)
🔹 Compreensão de listas e
dicionários em Python
Um recurso realmente interessante do Python que você deve
conhecer é a compreensão de listas e dicionários. Essa é
apenas uma maneira de criar listas e dicionários de modo
mais compacto.
['C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
'O']
[4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34]
j == 0]
56
<sequência> if <condição>}