0% acharam este documento útil (0 voto)
2 visualizações131 páginas

Aula Python

O documento apresenta uma introdução à linguagem de programação Python, destacando suas características, tipos de variáveis e operações básicas. Também aborda a instalação do Python e de pacotes, além de exemplos práticos de uso de variáveis, strings e operadores. O material é voltado para iniciantes que desejam aprender a programar utilizando Python.

Enviado por

mandola28
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações131 páginas

Aula Python

O documento apresenta uma introdução à linguagem de programação Python, destacando suas características, tipos de variáveis e operações básicas. Também aborda a instalação do Python e de pacotes, além de exemplos práticos de uso de variáveis, strings e operadores. O material é voltado para iniciantes que desejam aprender a programar utilizando Python.

Enviado por

mandola28
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

UNIVERSIDADE FEDERAL DE SÃO CARLOS (UFSCar)

Departamento de Engenharia de Produção (DEP)


Automação Industrial

Python

Mariana Ferreira de Carvalho Chaves


Prof.º Roberto Tavares
Linguagem Python

2
O que é Python?

● Linguagem de programação interpretada, interativa e orientada a


objetos;

● Fornece ao desenvolvedor um poder notável aliado a uma sintaxe


simples de clara;
● Possui interfaces para muitas chamadas e bibliotecas do sistema, bem
como para vários sistemas de janelas;
● Python é portátil.

3
O que é Python?

● Linguagem de programação de propósito geral, de alto nível, aplicável


em tipos diferentes de problemas;
● A linguagem vem com uma grande biblioteca padrão que abrange áreas
como:
○ processamento de strings;
○ protocolos de internet;
○ engenharia de software;
[Link]
○ interfaces de sistema operacional.
4
Instalando o Python

Verificando se tem o Python no seu computador:

● Abra o terminal (Prompt de Comando/ CMD) e digite:

python --version

5
Instalando o Python
Site: [Link]

6
Instalando o Python
Site: [Link]

7
Instalando o Python

8
Instalando o IDE

9
Instalando o IDE

10
Instalando o IDE

11
Instalando o IDE

12
13
14
15
16
17
18
19
20
Tipos de variáveis

21
Variáveis

● Variáveis são usadas para armazenar informações;


● Fornecem uma maneira de rotular dados com um nome descritivo;
● É útil pensar nas variáveis como contêineres que contêm informações;
● Seu único objetivo é rotular e armazenar dados na memória.

22
Variáveis

Variáveis
inteiro (int) números sem parte fracionária
float números com parte fracionária
string (str) texto
booleano (bool) representam verdadeiro ou falso

23
Variáveis

numero_str = "10" Para comentar:


numero_int = int(numero_str) #
soma = numero_int + 5 ou
print("O resultado da soma é:", soma)
“”” “””
print(f"O resultado da soma é: {soma}")

24
Tipo da variável

Para verificarmos qual classe a variável pertence, podemos utilizar a função


type():

a = 9.5
b = "cachorro"
c = 8

print(type(a))
print(type(b))
print(type(c))

25
Usuário - input

● Comando input:
nome_da_variavel = input("Seu texto")

● Exemplo 1: Faça um programa que leia o nome de uma pessoa e mostre


uma mensagem de boas-vindas

nome = input("Digite seu nome:")


print(f"Prazer te conhecer, {nome}!")

26
Usuário - input

● Especificando o tipo da variável

num = int(input("Digite um número inteiro:"))

num = float(input("Digite um número:"))

27
Números

28
Números

Em Python existem três tipos numéricos, são eles:

● Int: números positivos, negativos, que não apresentam casas decimais,


seu tamanho é limitado apenas pela capacidade de memória disponível;

● Float: "números de ponto flutuante" são números positivos ou


negativos que podem conter uma ou mais casas decimais;
● Complex: Números complexos são escritos com j representando a
parte imaginária. É armazenado internamente usando coordenadas
Cartesianas ou Retangulares.
29
Notação científica

● Pode-se acrescentar o caractere e ou E seguido por um número inteiro


positivo ou negativo:

num = 3.8E-2
print(num) 0.038

30
Strings

31
Strings

● Uma string é tradicionalmente um tipo de dados que representa uma


sequência de caracteres;
● Um caracter é simplesmente um símbolo;
● Caracteres podem ser letras, dígitos, símbolos ($, !, #, @).

32
Strings

-9 -8 -7 -6 -5 -4 -3 -2 -1
G U I L H E R M E
0 1 2 3 4 5 6 7 8

● Para acessar elementos individuais das strings, utiliza-se colchetes [];

nome = "GUILHERME"
print(nome[5])

33
Strings

-17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1


G U I L H E R M E V I R I A T O
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
● Formação de substrings:
nome = "Guilherme Viriato"
Não inclui o item
print(nome[5:15]) 15

● Reverter a string:
nome = "Guilherme Viriato"
print(nome[::-1])
34
Métodos em Strings

● strip(): remove espaços extras no começo e no fim da string:


nome = "Mariana Ferreira de Carvalho Chaves "
print([Link]())

● len(): retorna o tamanho da string:

print(len(nome))

● lower(): retorna todos os caracteres em minúsculo:

print([Link]())

35
Métodos em Strings

● upper(): retorna todos os caracteres em maiúsculo:

print([Link]())

● swapcase(): retorna a string com caracteres maiúsculos em minúsculos


e vice-versa:

print([Link]())

● title(): a primeira letra de cada palavra é convertida em maiúscula:


print([Link]())

36
Métodos em Strings

● replace(): substitui a string por outra string especificada:

print([Link]("Mariana", "Gabriela"))

● split(): separa a string em substrings:

print([Link]())

● join(): retorna a string que resulta da concatenação dos objetos em um


iterável separados por delimitador:
nomes= ["Mariana", "Gabriela", "Helena", "Patricia"]
print(",".join(nomes))
37
Métodos em Strings

● count(): retorna o número de ocorrências não sobrepostas da substring


informada:
frase = "Um tigre, dois tigres, tres tigres"
print([Link]("tigres"))

● startswith(): checa se a string inicia com o prefixo determinado:

print([Link]("um"))
● endswith(): checa se a string termina com o sufixo determinado:

print([Link]("gres"))

38
Métodos em Strings

● find(): retorna o menor índice da string onde a substring informada se


encontra:
print([Link]("i"))

● isalnum(): verifica se a string é não-vazia e todos os seus caracteres são


alfanuméricos:
frase = "Um tigre 2 tigres 3 tigres"
print([Link]())
● isalpha(): verifica se a string é não-vazia e todos os seus caracteres são
alfabéticos:
print("AbC".isalpha())
39
Métodos em Strings

● isdigit(): checa se a string contém apenas dígitos:


print("334457".isdigit())

● isupper(): verifica se todos os caracteres de uma string são maiúsculos:


print("MacA".isupper())

● islower(): verifica se todos os caracteres de uma string são minúsculos


print("cama".islower())

40
Métodos em Strings

● Exemplo 2: Utilize o input para que o usuário digite seu nome completo.
Em seguida, converta todas as letras para minúsculas. Ao final,
apresente o nome e o último sobrenome e seus respectivos tamanhos.

41
Métodos em Strings

● Exemplo 2:
nome_completo = input("Digite seu nome completo:
")
nome_completo =
nome_completo.lower().strip().split()

nome = nome_completo[0]
sobrenome = nome_completo[-1]

print("Nome:", nome)
print("Tamanho do nome:", len(nome))
print("Último sobrenome:", sobrenome)
print("Tamanho do sobrenome:", len(sobrenome)) 42
Pacotes

43
Instalando pacotes

● O Python possui uma quantidade significativa de pacotes para auxiliar


no desenvolvimento:
○ NumPy;
○ Matplotlib;
○ Math;
○ Pandas.

44
Instalando pacotes

Instalação:
● Acesse o terminal;
● Instalar:
○ pip install nome_do_pacote
○ python -m pip install
○ python3 -m pip install
● Atualizar: pip install -U nome_do_pacote
● Desinstalar: pip uninstall nome_do_pacote

45
Utilizando os pacotes

import numpy as np

lista = [Link]([1, 2, 3])

from pandas import DataFrame

46
Operadores

47
Operadores aritméticos

+ Adiciona dois operandos 2+5

- Subtrai o operando da direita pelo da esquerda 7-2

* Multiplica dois operandos 3*3

/ Divide o operando da esquerda pelo da direita 3/2

% Módulo, resto da divisão do operando da esquerda pelo da direita 10%3

// Divisão arredondada, esta divisão retorna um número inteiro 3//2

** Expoente, operando a esquerda elevado à potência do operando a direita 2**32


48
Operadores aritméticos

● Exemplo 3: Peça ao usuário dois valores (n1 e n2) e retorne com os


valores finais para cada operação aritmética.

49
Operadores aritméticos
n1 = float(input("Digite o primeiro número: "))
n2 = float(input("Digite o segundo número: "))
soma = n1 + n2
subtracao = n1 - n2
multiplicacao = n1*n2
divisao = n1/n2 Pular a linha: \n
modulo = n1%n2 print(f"Soma:
div_arredondada = n1//n2 {soma}\nSubtr
expoente = n1**n2 acao:
{subtracao}")
print("Resultados das operações aritméticas:")
print(f"Soma: {soma}")
print(f"Subtracao: {subtracao}")
print(f"Multiplicacao: {multiplicacao}")
print(f"Divisao: {divisao}")
print(f"Modulo: {modulo}")
print(f"Divisao Arredondada: {div_arredondada}")
print(f"Expoente: {expoente}")
50
Operadores aritméticos

● Exemplo 4: Faça a raiz quadrada dos números.

n1 = float(input("Digite o primeiro número: "))


n2 = float(input("Digite o segundo número: "))
raiz_n1 = n1**(0.5)
raiz_n2 = n2**(0.5)
print(f"Raiz quadrada de {n1} é: {raiz_n1}")
print(f"Raiz quadrada de {n2} é: {raiz_n2}")
Pode-se usar
a função
sqrt()

51
Operadores de atribuição

É o símbolo de igualdade, chamado de operador de atribuição, utilizado


=
para atribuir um valor a uma variável.
+= Utilizado em estruturas de repetição
-=, *=, /= Operadores para subtração (-=), multiplicação (*=) e divisão (/=).

x = 9
x += 3
print(x)

52
Operadores de Comparação

Operadores de comparação são usados para comparar valores. Retornarão


True ou False de acordo com a condição.

> Maior que x>y

< Menor que x<y

== Igual x == y

!= Não Igual x != y

>= Maior que ou Igual x >= y

<= Menor que ou Igual x <= y


53
Operadores de Comparação

● Exemplo 5: Peça ao usuário dois valores (n1 e n2) e retorne com os


valores finais para cada operação de comparação.

n1 = float(input("Digite o primeiro número: "))


n2 = float(input("Digite o segundo número: "))

print(f"n1 é maior do que n2: {n1 > n2}")


print(f"n1 é menor do que n2: {n1 < n2}")
print(f"n1 é igual a n2: {n1 == n2}")
print(f"n1 é diferente de n2: {n1 != n2}")
print(f"n1 é maior ou igual a n2: {n1 >= n2}")
print(f"n1 é menor ou igual a n2: {n1 <= n2}")
54
Operadores Lógicos

Operadores Lógicos são usados para combinar comandos condicionais.

and Retorna True se ambos os comandos são verdadeiros x < y and x < 10

or Retorna True se um dos comandos é verdadeiro x < y or x > 3

not Reverte o resultado, retorna False se o resultado for True e not(x > 10)
vice-versa

55
Operadores Lógicos

Operadores Lógicos são usados para combinar comandos condicionais.

n1 = 5
n2 = 8
n3 = 7
print(n1 < n2 and n1 < n3)
print(n1 == n2 or n3 == n2)
print(not (n1 > n2))

56
Operadores de Identidade

Comparar os objetos, não se são iguais, mas se eles forem realmente o


mesmo objeto, com o mesmo local de memória.

is True se os operandos são idênticos (referem ao mesmo objeto)

is not True se os operandos não são idênticos (não referem ao mesmo


objeto)

57
Operadores de Identidade

Comparar os objetos, não se são iguais, mas se eles forem realmente o


mesmo objeto, com o mesmo local de memória.
x = 4 z = [1,2,4]
y = 4 k = [1,2,4]
print(x is y) # True print(z is k) # False
print(x is not y) # False print(z is not k) # True

a = "python"
b = "python"
print(a is b) # True
print(a is not b) # False

58
Operadores de Membros

Usados para testar se uma sequência é apresentada em um objeto.

in Retorna True se o valor/variável é encontrado na "p" in "python"


sequência

not in Retorna True se o valor/variável não está presenta 1 not in [1,2,3]


na sequência

59
Operadores de Comparação

● Exemplo 6: Peça ao usuário digitar o nome completo e verifique se há


“,”e “;”.

nome = input("Digite seu nome: ")


print(("," or ";") in nome)

60
Precedência
Precedência

menor precedência or Boolean OR

and Boolean AND

not Boolean NOT

==, !=, <, <=, >, >=, is, is not Comparações, Identidade

+, - Adição, Subtração

*, /, //, % Multiplicação, Divisão, Divisão


arredondada, Módulo

maior precedência ** Expoente


61
Estruturas de dados

62
Vetores

● Estruturas que facilitam a armazenagem e manipulação de um conjunto


de dados;
● Conjunto de dados do mesmo tipo.

dias = ["domingo", "segunda", "terça", "quarta",


"quinta", "sexta", "sabado"]

vetor = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


63
Listas

● Uma lista em Python é definida entre colchetes [ ], e pode conter


qualquer tipo de dado, incluindo strings, números, outros objetos e até
outras listas;
minha_lista = [1, 2, 3, "quatro", "cinco"]

minha_lista = [["quatro", "cinco"],[541, 88, 65],


["cachorro", "gato", "peixe", "galinha"]]

print(minha_lista[1][0])

64
Listas

L = ['L','i','n','g','u','a','g','e','m',' ','P','y','t','h','o','n']

● Fundamentos básicos:

print(len(L))
print(''.join(L))

● index() -> busca por um determinado elemento e retorna o índice dele:

print([Link]('g'))

65
Listas

Slicing:
● lista[inicio:parada] ->item de início até o item de parada - 1;
● lista[inicio:] -> item de início até o fim da lista;
● lista[:parada] -> itens do começo da lista até parada - 1;
● lista[:] -> cópia da lista inteira;
● lista[inicio:parada:passo] -> adiciona determinado número de passos
L = ['L','i','n','g','u','a','g','e','m',' ','P','y','t','h','o','n']

print(L[4:8]) ['u', 'a', 'g', 'e']


66
Adicionando itens a uma lista

● append():
lista = [2, 4, "cachorro"]
[Link]("gato")
print(lista)

● extend() -> anexar vários itens à mesma lista:


[Link]([14, "peixe"])

● insert() -> inserir itens em uma posição específica:

[Link](2, "bola")

67
Removendo itens a uma lista

● del(lista[índice]) -> deleta um elemento em um índice específico:


lista = [2, 1, 3, 6, 3, 7, 0]
del(lista[1])
print(lista)

● pop() -> remove elementos no fim da lista:


[Link]() Se o elemento
ocorre múltiplas
● remove() -> remove um elemento específico : vezes na lista,
[Link](3) remove a primeira
ocorrência

68
Operações com listas

● sort() -> ordena os elementos de uma lista sem criar uma nova lista:
lista = [2, 1, 3, 6, 3, 7, 0]
[Link]()
print(lista)
● sorted() -> ordena uma lista e retorna uma lista ordenada, sem
modificar a lista original:
print(sorted(lista))

69
Operações com listas

● reverse():
[Link]()
print(lista)

● reverse + sorted() -> lista em ordem decrescente :

print(sorted(lista, reverse=True))

70
Listas

● Exemplo 7: Solicite ao usuário as informações de nome, idade e


profissão e armazene esses dados em uma lista.

71
Listas

● Exemplo 7:
nome = input("Nome: ")
idade = int(input("idade: "))
profissao = input("Profissao: ")
dados = []
[Link](nome)
[Link](idade) nome = input("Nome: ")
[Link](profissao) idade = int(input("idade: "))
print(dados) profissao = input("Profissao: ")
dados = [nome, idade, profissao]
print(dados)

72
Matrizes

● Uma matriz pode ser entendida como uma lista que contém vetores.

matriz = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

matriz = [[1, 2, 3],


[4, 5, 6],
[7, 8, 9]]

73
Matrizes

● Não tem limites de dimensões;


● Inserir elementos com append();
● Remover elementos com pop();
● Acessando itens em matrizes:

matriz = [[1, 2, 3],


[4, 5, 6],
[7, 8, 9]]
Qual o item
matriz[2][0]?

74
Tuplas

● São sequências de elementos imutáveis.

● Seus valores não podem ser alterados após a criação.

● São usadas para armazenar dados que não devem ser modificados.

● São representadas por parênteses ().

tupla = (1, 5, "Horacio")

75
Sets

● Coleções não ordenadas de itens únicos (sem repetição);

● O set pode ser modificado, mas seus elementos são ser imutáveis;

● São definidos por valores separados por vírgula dentro de chaves {};

● Permitem operações de conjuntos como união, intersecção, diferença


simétrica, etc.

set = {1, 5, 8, 47}

76
Operações com sets

● add(): ● clear() -> remove todos os itens:


[Link](9) [Link](5)
Out:{1, 5, 8, 9, 47} Out: set{}

● discard() -> remover item: ● Eliminar letras repetidas de uma palavra:

[Link](5) print(set('paralelepipedo'))
Out: {8, 1, 47} Out: {'e', 'a', 'r', 'i', 'o',
'l', 'd', 'p'}

77
Dicionários

● Estruturas que armazenam dados em pares chave: valor;

● Diferente de listas, são indexados por chaves, não por posições;

● São não ordenados (conceitualmente) e otimizados para busca rápida;

● Definidos com chaves {}.

78
Dicionários

Chaves
● Devem ser únicas;

● Devem ser de tipo imutável (ex: int, str, tuple, bool);

● Não possuem ordem.

Valores
● Podem ser de qualquer tipo;

● Podem ser repetidos;

● Podem ser listas ou até outros dicionários.


79
Dicionários

pessoa = {
"nome": "Maria",
"idade": 30,
"profissao": "Engenheira",
"hobbies": ["leitura", "viagem", "música"]
}

print(pessoa["nome"])
Out: Maria
print([Link]("nome"))
Out: Maria

80
Dicionários

● Alterando valores no dicionário:


pessoa["nome"] = "Catarina"
pessoa["idade"] = 65
pessoa["profissao"] = "Aposentada"
pessoa["hobbies"] = ["crochê", "forro"]
print(pessoa)

[Link]({'nome':'Catarina'})

● Verificar a presença de determinado valor no dicionário:


print("Carlota" in [Link]())
Out: False
81
Dicionários

● Adicionando itens ao dicionário:

pessoa['Estado civil'] = "Viúva"


print(pessoa)
Out:{'nome': 'Catarina', 'idade': 65, 'profissao':
'Aposentada', 'hobbies': ['crochê', 'forro'], 'Estado
civil': 'Viúva'}

82
Dicionários

Removendo itens ao dicionário:


● pop():
[Link]("hobbies")
print(pessoa)
Out: {'nome': 'Catarina', 'idade': 65, 'profissao':
'Aposentada', 'Estado civil': 'Viúva'}
● popitem() -> remove o último par de chave-valor adicionado:

[Link]()
print(pessoa)
Out: {'nome': 'Catarina', 'idade': 65, 'profissao':
'Aposentada', 'hobbies': ['crochê', 'forro']}
83
Dicionários

Removendo itens ao dicionário:


● del -> remove item com a chave especificada:
del pessoa["profissao"]
print(pessoa)
Out: {'nome': 'Catarina', 'idade': 65, 'hobbies':
['crochê', 'forro'], 'Estado civil': 'Viúva'}

● clear(): esvazia o dicionário por completo:

[Link]()
print(pessoa)
Out:{}
84
Estruturas de controle

85
if… else

● A tomada de decisão é um conceito essencial na programação;

● Permite executar comandos apenas quando uma condição é


verdadeira;

86
if… else

Python suporta as principais comparações da matemática:

● Igualdade: x == y

● Diferente de: x != y Sintaxe


if <expressão>:
● Menor que: x < y
<comandos>
elif <expressão>:
● Menor ou igual: x <= y
<comandos>
else:
● Maior que: x > y
<comandos>
● Maior ou igual: x >= y 87
if… else

88
if… else
if numero > 0:
print("Numero positivo")

if numero > 0:
print("Numero positivo")
else:
print("Numero negativo")

if numero > 0:
print("Numero positivo")
elif numero == 0:
print("Numero igual a 0")
else:
print("Numero negativo") 89
if… else

● Múltiplos if, elif e else:

idade = 20
tem_carteira = True

if idade >= 18:


if tem_carteira:
print("Pode dirigir")
else:
print("Pode tirar a carteira")
else:
print("Menor de idade, não pode dirigir")
90
if… else

● Com operadores lógicos (OR, AND, NOT):

nota = 7
frequencia = 80

if nota >= 6 and frequencia >= 75:


print("Aprovado")
else:
print("Reprovado")

91
if… else

● Exemplo 8:

Imagine que tem três informações sobre uma pessoa: sua idade, se ela
possui ingresso e se é VIP. A partir disso, queremos decidir se ela pode
entrar em um evento e de que forma.

Se a pessoa for maior de idade, tiver ingresso e for VIP, então sua entrada
VIP é liberada. Caso seja maior de idade e tenha ingresso, mas não seja VIP,
sua entrada comum é liberada. Se a pessoa não tiver ingresso, mas for VIP,
ela deve procurar atendimento especial. Em todos os outros casos, a
entrada é negada.

92
if… else

idade = int(input("Idade: "))


tem_ingresso = input("Possui ingresso? ")
vip = input("Ingresso é VIP? ")

if idade >= 18 and tem_ingresso == "Sim" and vip == "Sim":


print("Entrada VIP liberada")
elif idade >= 18 and tem_ingresso == "Sim":
print("Entrada comum liberada")
elif tem_ingresso == "Nao" and vip == "Sim":
print("Procurar atendimento especial")
else:
print("Entrada negada")
93
For loops

● O for é usado para percorrer (iterar) sequências (listas, tuplas,


dicionários);
● Percorrer elemento por elemento;
● Permite trabalhar com vários dados de forma automática;
● Evita repetição de código;
● É uma das estruturas mais usadas em Python.

Sintaxe
for seq in sequencia:
print(seq)
94
For loops

95
For loops

● A variável (seq) recebe o valor de cada item da sequência;


● A cada repetição, ela assume um novo valor;
● O loop continua até o último item da sequência;
● Segue a ordem em que os itens aparecem;

Sintaxe
for seq in sequencia:
print(seq)

96
For loops

lista = [0, 1, 2, 3, 4]
for i in lista: ● O for percorre esses
print(i) valores;
Out:
0
● A cada repetição, imprime o
1
2 valor de i;
3
4

for letra in "palavra":


print(letra) 97
For loops

● range(num1, num2, passo)-> gera sequência de números

x = range(1, 10, 2)
print(list(x))
Out: [1, 3, 5, 7, 9]

for i in range(5):
print(i)

98
Condicionais no For

● Break -> permite parar o loop antes que passe por todos os itens:

for i in range(10): nomes = ["Ana", "Carlos",


if i == 5: "Maria", "João", "Pedro"]
break
print(i) for nome in nomes:
Out: if nome == "Maria":
0 break
1 print(nome)
2 Out:
3 Ana
4 Carlos
99
Condicionais no For

● Continue -> permite parar a iteração atual e continuar para a próxima:

for i in range(5): nomes = ["Ana", "Carlos",


if i == 2: "Maria", "João"]
continue for nome in nomes:
print(i) if nome == "Maria":
continue
Out: print(nome)
0 Out:
1 Ana
3 Carlos
4 João
100
Loop encadeados

● Loops encadeados são loops dentro de loops, o "loop de dentro" será


executado uma vez para cada iteração do "loop de fora;
Tabuada do 1:
1 x 1 = 1
for i in range(1, 4): 1 x 2 = 2
print(f"Tabuada do {i}:") 1 x 3 = 3
for j in range(1, 11): 1 x 4 = 4
print(f"{i} x {j} = {i * j}") 1 x 5 = 5
print("-" * 10) 1 x 6 = 6
1 x 7 = 7
1 x 8 = 8
1 x 9 = 9
1 x 10 = 10
101
Enumerando valores

● enumerate() -> usado para percorrer uma sequência com índice e valor
ao mesmo tempo:
for indice, valor in enumerate(sequencia):
● print(indice, valor)

nomes = ["Ana", "Carlos", "Maria"]


for indice, nome in enumerate(nomes):
print(f"{indice} -> {nome}")
Out:
0 -> Ana enumerate(nomes, 11)
1 -> Carlos
2 -> Maria
102
While loops

● O while é usado para repetir um bloco de código;

● Executa enquanto uma condição for verdadeira (True);

● Quando não se sabe quantas vezes o loop será executado.

Sintaxe
while <condição>:
<expressão>
<expressão>
...
103
While loops

104
While loops

contador = 0 senha = ""


while senha != "2245":
while contador < 5: senha = input("Digite a
print(contador) senha: ")
contador += 1
Out: print("Acesso liberado")
0 Out:
1 Digite a senha: 4485
2 Digite a senha: 54654
3 Digite a senha: 2245
4 Acesso liberado

105
While loops

● Break:

while True: while True:


if numero == 2: texto = input("Digite algo
break (ou 'sair'): ")
print(numero) if texto == "sair":
numero += 1 break
Out: print("Você digitou:", texto)
0 Out:
1 Digite algo (ou 'sair'): algo
Você digitou: algo
Digite algo (ou 'sair'): sair
106
While loops

● Continue:

numero = 0 while True:


while numero < 5: texto = input("Digite algo:
numero += 1 ")
if numero == 3: if texto == "":
continue continue
print(numero) print("Você digitou:", texto)
Out: if texto == "sair":
1 break
2
4
5 107
Funções

108
Funções

● Uma função é um bloco de código organizado e reutilizável;

● Executa uma determinada tarefa;


● Tornam o código mais modular;
● Permitem reutilização;
● Deixam o programa mais organizado e fácil de gerenciar;
● O Python já possui funções prontas (print(), range());
● Também podemos criar nossas próprias funções.

109
Funções

110
Características

● Possuem um nome;

● Possuem parâmetros (0 ou mais);


● Possuem docstrings (“”” “””);
● Possuem um corpo (bloco de código); Sintaxe
● Podem retornar um valor.
def nome_da_função(parametros):
"""docstrings"""
<comandos>

111
Regras para definir uma função

Início:
● Palavra-chave def;
● Seguida do nome da função e parênteses ();
● Parâmetros (argumentos) ficam dentro de ();
● Usamos : ao final do cabeçalho.
Estrutura da Função:
● Pode conter docstring;
● Possui um corpo com instruções válidas;
● Deve respeitar a indentação. 112
Regras para definir uma função

Retorno
● Pode usar o comando return;

● Retorna um valor para quem chamou a função;


● Sem valor → retorna None.

113
Regras para definir uma função

● minutos_para_horas(minutos):
def
"""Converte minutos para horas"""
return minutos / 60

tempo = 180
print(minutos_para_horas(tempo))

Out: 3.0

114
Regras para definir uma função

115
Funções

● minutos_para_horas(minutos):
def
"""Converte minutos para horas"""
hora = minutos/60
return hora

help(minutos_para_horas)

Out:
minutos_para_horas(minutos)
Converte minutos para horas

116
Parâmetros padrão em Funções

● Pode-se definir valores padrão para os parâmetros, que são utilizados


quando nenhum argumento é passado;
● Se o usuário não informar o valor → usa o padrão;
● Se informar → o valor padrão é substituído.
def calcular_preco(preco, desconto=10):
"""Calcula o preço final aplicando um desconto
percentual."""
preco_final = preco - (preco * desconto / 100)
print("Preço final:", preco_final) Out:
calcular_preco(100) Preço final: 90.0
calcular_preco(100, 20) Preço final: 80.0 117
Docstrings em Funções

● A primeira string após o cabeçalho da função é chamada de docstring;

● Serve para descrever o que a função faz;


● Facilita o entendimento do código;
● É uma boa prática de programação;
● Pode-se visualizar usando o atributo __doc__

print(calcular_preco.__doc__)

118
Funções anônimas

Diferem das funções comuns:

● Não possuem nome;


● Declaradas usando a palavra-chave lambda;
● Podem receber qualquer número de argumentos;
● Retornam apenas um valor, definido por uma expressão;
● Não podem conter:
● Comandos;
● Múltiplas expressões.
● Uma função lambda não pode ser chamada diretamente pelo print();
● Necessita ser avaliada em uma expressão para retornar valor.
119
Funções anônimas

f = lambda x: x - x
Objeto função
Palavra-chave
Argumento
Expressão de uma linha

120
Funções anônimas

Sintaxe
lambda argumento1, argumento2, argumento3: expressão

quadrado = lambda x: x ** 2
print(quadrado(5))

multiplicar = lambda a, b: a * b
print(multiplicar(4, 5))

maiuscula = lambda s: [Link]()


print(maiuscula("Bom dia")) 121
Funções anônimas

● Filtrar itens -> filter(função, iterável):

nomes = ["Ana", "Bruno", "Alice", "Carlos", "Amanda"]


nomes_com_a = list(filter(lambda nome:
[Link]("A"), nomes))

print(nomes_com_a)

● Aplicar a função para todos os termos -> map(função, iterável):


numeros = [1, 2, 3, 4, 5]
quadrados = list(map(lambda x: x**2, numeros))
print(quadrados)
122
Funções anônimas

● Ordenar -> sort(key=função)

numeros = [5, 2, 9, 1, 7]
[Link](key=lambda x: x)
print(numeros)

● Valores máximo e mínimo:

print(max(numeros, key = lambda x: x))


print(min(numeros, key = lambda x: x))

123
Gerador de funções

● def + lambda:

def equacao(mult, adic):


"""
Retorna uma (x*multiplicador + adicionador)**2).
"""
return lambda x: (x * mult + adic) ** 2
resultado = equacao(2, 3)
print(resultado(4))

Out: 121

124
Exercícios de fixação

125
Exercício 1 Exercício 2
i = 5 a = ["a", "b", "c", "d"]
while i > 0: for b in a:
print (i) print (b)
i = i - 1

Exercício 3

a = "123"
print a+"1"
print a[1]
print a[-1]
print a[:1]
126
Exercício 4
a = [3, 2, 4, 1]
ok = 0
while ok == 0:
ok = 1
for i in range(1, len(a)):
if a[i-1] > a[i]:
a[i-1], a[i] = a[i], a[i-1]
ok = 0
print a
Exercício 5
lista = [[1, "CAFE", 10], [2, "CHA ", 5], [3, "AGUA",
15]]
total = 0
print ("Item Qtd em estoque")
for a in lista:
print (a[1]+" "+str(a[2]))
total = total + a[2]
print ("Total de itens em estoque: " + str(total ))
127
Exercício 6
# Exemplo de recursividade
def recursivo(x):
if x == 0:
return 0
else:return x +
recursivo(x-1)
y = recursivo (10)
print (y)

Exercício 7
def divide(x, lista ):
val = 0
if len(lista) > 1:
val = lista [-1]
y = x - val
print (y)
divide(x - val , lista [: -1])
return (y)
else:
return (0)
valores = [2, 3, 5]
divide (10, valores) 128
Exercícios de implementação

129
Leitura de arquivos com Pandas

Exercício 9
Defina uma lista de pontos 2D e implemente uma função ”distancia(lista, i0, i1)” que
retorne a distância entre dois pontos.
A distância entre dois pontos (x1, y1) e (x2, y2) é dada pela fórmula:
d = sqrt((x2 - x1)² + (y2 - y1)²)

Use a função sqrt() do módulo math para calcular a raiz quadrada.


Exemplo de uso da função:
»> p1 = (1, 2)
»> p2 = (3, 4)
»> lista_de_pontos = [p1, p2]
»> distancia(lista_de_pontos, 0, 1)
2.8284271247461903

130
Leitura de arquivos com Pandas

Exercício 10
Crie uma função ”obtem_tamanho(lista)”, que recebe uma lista [1,4,2], e retorna:
d(0,1) + d(1,4) + d(4,2) + d(2,0)

Exercício 11
Crie um script que lê do teclado uma lista e escreve o tamanho da rota
correspondente.

131

Você também pode gostar