Caderno de Exercicios - Python - Fundamentos
Caderno de Exercicios - Python - Fundamentos
Caderno de Exercícios
Laercio Azevedo de Sa
SUMÁRIO
O Python foi criado em 1989 por Guido Van Rossum. Ele trabalhava no Centrum Voor
Wiskunde (CWI) no início dos anos 1980, e seu trabalho era implementar a linguagem
de programação conhecida como ABC.
No final dos anos 1980, ele precisava de uma linguagem de script que tivesse sintaxe
semelhante ao ABC e que tivesse acesso às chamadas de sistema Amoeba. Depois
de procurar e não encontrar nenhuma linguagem que fizesse isto, Rossum decidiu
criar uma linguagem de script simples. Em 1991 ele lançou a versão inicial desta
linguagem de programação e que posteriormente foi chamada de “Python”. O Python
é uma linguagem de programação com suporte a orientação de objetos, uma
linguagem intermediária, que será interpretada por uma máquina virtual, usa tipagem
dinamicamente forte e multiplataforma funcionando em WIndows, Linux, Unix e Mac.
Versões
Cronologia
As versões 3 não é compatível com a versão 2 e por isto elas foram evoluindo em
conjunto até que em 2020 a última atualização de segurança da versão 2.7.18 foi
lançada e posteriormente descontinuada.
Instalação
Interpretador ou Compilador
Neste capítulo você vai instalar os softwares para programar em Python e conferir se
a instalação foi feita corretamente. Será necessário instalar o VSCode para escrever
os códigos. E aprenderá os dois comandos mais básicos da linguagem, que é o print
e input, e aprenderá a colocar comentários no código.
Objetivos:
• Instalar e preparar o ambiente de desenvolvimento.
• Criar comentários com #.
• Imprimir na tela com o comando print.
• Pedir informações para o usuário com o comando input.
Tópicos do capítulo
• Instalação do Python e da IDE.
• Comentários.
• Comandos: print e input.
https://www.python.org/
https://code.visualstudio.com/
2. Para instalar as extensões basta realizar a pesquisa e clicar em instalar, faça a instalação destas
3 extensões:
Portuguese (Brazil) Language Pack for Visual Studio Code,
Python e
Material Icon Theme
3. A extensão Portuguese (Brazil) Language Pack for Visual Studio Code altera o idioma do
VSCode, será necessário reiniciar o programa para alterar o idioma.
4. A extensão Python incluir ferramentas para o desenvolvimento em Python.
5. A extensão Material Icon Theme altera os ícones na janela do Explorer, facilitando a
identificação dos arquivos do projeto.
6. É possível alterar as cores do ambiente de desenvolvimento usando o menu Arquivo /
Preferências / Tema de Cores.
4 “Olá Mundo!”
Objetivo: Nesta atividade você irá imprimir na tela o texto “Olá mundo!” em uma linha
e na linha debaixo o texto “Meu primeiro código em Python.
Comandos utilizados: comentário e print
# Símbolo de comentário, usado para descrever um código print
Usado para “imprimir” uma informação no terminal
7. Para executar os comandos você tem algumas opções que são: Apertar F5 ou menu
Executar / Iniciar a Depuração.
Apertar CTRL + F5 ou menu Executar / Iniciar sem Depuração.
Clicar no botão Executar Arquivo no Terminal, que fica no canto superior direito da tela.
5 Usando o Input
Objetivo: Nesta atividade você vai usar o comando input para interagir com o usuário
pedindo uma informação e usará o comando print com format e posição de
substituição.
Comandos utilizados: print, input
input Usando para interagir com o usuário, o prompt fica esperando o usuário entrar com
uma informação
print {} format As {} indicam uma posição de substituição que será usada em conjunto com o
comando format, conforme exemplo abaixo:
print(‘Exemplo de {}’ . format(‘Posição de Substituição’))
3. Agora use o input para pedir o nome do usuário e o print para dizer um olá.
print('Olá {}' . format(input('Qual o seu nome? ')))
Objetivos:
• Entender o que são as variáveis.
• Trabalhar com os tipos de dados (número, texto).
• Utilizar operadores matemáticos básicos.
• Manipular textos.
Tópicos do capítulo
• Utilização de variáveis.
• Utilizando operadores matemáticos.
• Métodos para variáveis do tipo string.
Objetivo: Nesta atividade você vai somar dois números usando variáveis e irá verificar
os tipos de dados de uma variável e como converter uma variável em um tipo diferente.
Comandos utilizados: Variáveis, type, int, float type
Retorna o tipo de dados de uma variável
Int Transforma uma variável no formato int (número inteiro)
+ Operador matemático para soma de números ou operador de concatenação
para texto (String)
3. Onde num1 e num2 são as variáveis e input permite que o usuário informe o valor desejado.
4. Para realizar a soma utilize uma terceira variável e use o símbolo de + para somar. soma =
num1 + num2
6. Observe que não foi realizada a soma e sim a concatenação das informações, toda informação
passada pelo input é do tipo <str>, para verificar o tipo de dados de uma variável utilize o
comando type.
print(type(num1))
7. Para que a soma seja feita corretamente é necessário usar o comando int, o comando int vai
transformar a variável em número inteiro, sem casas decimais, podemos usar este comando
no momento da soma.
soma = int(num1) + int(num2)
Objetivo: Nesta atividade você vai calcular a área de um retângulo através de dois
números fornecidos pelo usuário e fará também a verificação se os dados informados
são realmente números.
Comandos utilizados: Float e método isnumeric() float Transforma uma variável
no formato float (número com casas decimais) isnumeric Verifica se o valor de uma
variável é numérico inteiro (int) isdecimal Verifica se o valor de uma variável é
número com casas decimais (float)
1. Abra um novo arquivo no VSCode e salve com o nome cap02_atividade02.py.
3. Antes de realizar o cálculo você vai mostrar para no terminal se o lado1 é numeric e se o lado2
é decimal, o retorno destes comandos é True ou False. Imprima esta informação na tela usando
o print.
print('Lado1 é numérico?' , lado1.isnumeric()) print('Lado2
é numérico?' , lado2.isdecimal())
Objetivo: Nesta atividade você vai trabalhar com dados de texto, usando vários
métodos para verificar e modificar o valor de uma variável. Aprenderá a usar a
biblioteca system para limpar a tela do terminal.
Comandos utilizados: Biblioteca do sistema operacional os com a classe system,
função len e os métodos upper, lower, capitalize, find, replace, isalpha, isalnum, split,
center para variáveis de texto
os, system A biblioteca que permite acessar informações do sistema operacional é a os,
system é classe que permite executar os comandos do sistema, você vai usar
o comando cls que limpa o terminal do Windows em Linux é possível usar o
comando clear
len Conta o número de caracteres de um texto
4. Agora peça para o usuário o seu nome completo guardando o valor em uma variável
nomecompleto = input('Informe o seu nome completo: ')
5. O primeiro comando que vai usar é o len(), nele é possível contar o número de caracteres de
uma variável.
print('1. Quantidade de caracteres:', len(nomecompleto))
6. Os próximos métodos irão trabalhar com letras maiúsculas e minúsculas. O método upper()
deixa todos os caracteres em maiúsculos o lower() em minúsculo e o capitalize() deixa a
somente o primeiro caractere da sentença em maiúsculo.
print('2. Nome em maiúsculo:', nomecompleto.upper()) print('3.
Nome em minúsculo:', nomecompleto.lower())
print('4. Primeira letra em maiúsculo:', nomecompleto.capitalize())
7. Agora você vai procurar o local onde se encontra o primeiro espaço do nome informado usando
o método find() e com isto podemos pegar parte do texto usando a função de fatia [início: início
+ tamanho].
espaco = nomecompleto.find(' ')
print('5. Somente o primeiro nome:', nomecompleto[0:espaco])
8. O próximo método que vai usar permite de se faça a troca de um caractere por outro, este é o
método replace(), faça isto para tirar os espaços em branco do nome.
print('6. Nome sem espaços:', nomecompleto.replace(' ', ''))
9. Existem dois métodos para verificar que o nome informado é composto de texto, temos o
método isalpha e isalnum, no primeiro é verificado se o texto tem apenas letras e no segundo
10. Existe outro método que permite quebrar o texto em partes especificas, aqui você pode quebrar
o texto através do espaço em branco, isto é que o chamamos de lista (array), veremos isto com
mais detalhes nos próximos capítulos.
print('9. Quebrar o texto a cada espaço em branco:', nomecompleto.split("
"))
11. E para finalizar você vai centralizar o texto usando * para completar as laterais esquerda e
direita.
print('10. Centralizar o nome entre *')
print(nomecompleto.center(80,"*"))
Objetivo: Nesta atividade você vai calcular a raiz quadrada a partir do operador
matemático ** (exponenciação). O valor será passado pelo usuário e verificaremos se
este valor é numérico ou decimal.
Comandos utilizados: Variáveis, operador Exponenciação (**) e métodos isnumeric e
isdecimal.
Objetivos:
• Criar estruturas condicionais de decisão simples e complexas usando if / elif / else.
• Conhecer os operadores básicos de comparação do teste lógico de um if.
• Utilizar um if aninhado.
• Saber construir um if ternário, if escrito em uma linha apenas.
Tópicos do capítulo
• Tomar decisões simples com if / else.
• Tomar decisões simples com if / elif / else .
• Usar if aninhados e ternário.
Objetivo: Nesta atividade você vai usar uma estrutura de decisão (if / else) para verificar
se um número é par ou ímpar.
Comandos utilizados: Comando If, operador % (retorna o resto da divisão entre
operandos)
If / else If (teste lógico):
#código para condição verdadeira do teste, tem que ser indentado. else:
#código para condição falsa do teste, tem que ser indentado.
O texto lógico normalmente é a comparação entre duas informações.
Objetivo: Nesta atividade você vai converter um número em centímetros para Polegada,
Pé ou Jarda. Será necessário usar o comando if / elif / else.
Comandos utilizados: If / elif / else, formatação de números com posição de substituição
{:.4f}
If / elif /else If (teste lógico):
4. Crie um menu para o usuário saber como será feita a conversão de medida, use o \n
dentro do print para quebrar linha no terminal.
print('\nEscolha para que unidade deseja converter') print('1
- Polegada\n2 - Pé\n3 - Jarda')
5. Peça para o usuário informar a conversão deseja usando uma variável com o comando
input. menu = input('Opção: ')
6. Agora você vai precisar verificar qual foi a opção selecionada, neste caso temos 3
opções de escolha e o usuário ainda poderia indicar uma opção errada, para isto é necessário usar
o if / elif / else, na estrutura do if crie uma variável para guardar o texto para o resultado que será
impresso no terminal. if menu=="1":
polegadas = medida / 2.54 resultado = '{:.4f} centímetros
correspondem a {:.4f} polegadas' .
format(medida, polegadas) elif
menu=="2":
pes = medida / 30.48
Objetivo: Nesta atividade você vai calcular uma folha de pagamento usando o
comando if aninhado e mostrando o resultado dos valores de Imposto de Renda e
INSS a serem pagos.
Comandos utilizados: Variáveis, if, operadores matemáticos e formatação com posição
de substituição.
name Classe da biblioteca os, retorna o nome do sistema operacional.
If ternário O if ternário é um if que é escrito em apenas uma linha, isto facilita quando é
necessário verificar um valor e executar uma informação de uma maneira ou
de outra, a sintaxe é:
(código para o teste verdadeiro) if (teste lógico) else (código para o falso)
3. Peça o valor do salário para o usuário e já faça a conversão do valor em float (número com
opção de casas decimais).
print('*** Folha de Pagamento ***')
6. Agora você vai precisar calcular o valor de Imposto de Renda, o IR é calculado através do salário
base que nada mais é do que o salário bruto - INSS. Faça este cálculo e guarde a informação
em uma variável.
base = salario - inss
8. Na tabela do IR temos 5 valores diferentes e você pode usar o if neste caso também. if base
> 4664.68: irP = 0.275 deducao = 869.36 elif base > 3751.06: irP
11. Para finalizar imprimi no terminal as informações do Salário, Salário Base, INSS, %IR, Valor IR
e Salário Líquido, todos formatados com dois dígitos decimais. print('Salário Bruto:
{:.2f}\nSalário Base: {:.2f}\nINSS: {:.2f}\n%IR: {:.2f}%\nValor IR:
{:.2f}\nSalário Liquido: {:.2f}' . format(salario, base, inss,
irP*100, ir, salarioLiquido))
Objetivo: Nesta atividade você vai calcular o IMC a partir de um peso e uma altura, usará
a comando if para mostrar o resultado do cálculo do IMC.
Comandos utilizados: Variáveis, if / elif / else.
1. Para esta atividade o desafio é criar uma calculadora para mostrar o índice de IMC.
2. Peça primeiramente o peso e depois a altura.
3. Para o cálculo do índice utilize a tabela abaixo:
Neste capítulo você irá aprender a criar estruturas de repetição que são úteis para
repetir uma operação determinadas vezes ou até que uma condição não seja mais
verdadeira, no Python temos duas estruturas de repetição que podemos usar,
comando for e o while.
Objetivos:
• Entender como funciona uma estrutura de loop for.
• Criar loops aninhados usando o for.
• Utilizar o while para criar um loop e o comando break para terminar a execução.
• Criar um menu com while para ser reutilizado em diversos códigos.
Tópicos do capítulo
• Loop usando For / range.
• Loop aninhado de For.
• Loop usando While.
Atividade 1 – Tabuada
3. Para criar a tabuada é necessário criar um loop com o comando For / Range.
4. O range indica quantas vezes o grupo de código será executado, o range(11) indica que o valor
inicial começa em zero e vai até o 10. for i in range(10):
5. Agora para imprimir a informação no terminal use o comando print e faça o cálculo da tabuada.
print('{} * {} = {}' . format(multiplicador, i, i*multiplicador))
Atividade 2 – MultiTabuada
5. No mesmo arquivo crie um for range de 1 até 11. for i in range(1, 11):
6. Você vai precisar montar uma variável com a informação de cada linha a ser impressa, e
começaremos com a informação da primeira coluna que é a variável i.
Linha = '{: >4} ' . format(i)
8. Agora incremente a variável linha com as informações da multiplicação da variável i com a ii.
linha+='{: >4} ' . format(ii*i)
Objetivo: Nesta atividade você vai verificar se um número é primo ou não e ainda
indicar quem é o menor divisor deste número, usando o While para o realizar o loop.
Comandos utilizados: Comando f com variável de substituição, comando while e
break.
While While (condição)
O loop While é um loop que será executado até que uma condição seja falsa,
é necessário muito cuidado ao usar este loop pois pode acontecer um entrar
em loop infinito.
break Finaliza a execução de um while
3. Será necessário criar uma variável para auxiliar o cálculo da divisão, esta variável deve ter o
valor inicial de 2, o valor é 2 pois não iremos fazer verificação de números menores que 2.
i = 2
4. Agora você vai precisar de mais duas variáveis, uma para guardar o menor divisor do número
informado quando ele não for primo e outra variável para mostrar a mensagem se o número é primo
ou não, vamos inicia a variável com o valor de ‘O valor é menor que 2’ para o caso de ser informado
um número menor que 2. divisor = 0
tipo = 'O número deve ser maior que 2'
5. O comando While é feito enquanto um teste lógico tem como resposta verdadeira, neste caso
faremos da seguinte forma. while i < numero:
6. Se o código entrar neste ponto mudaremos o valor da variável tipo para ‘O número é PRIMO’.
tipo = 'O número é PRIMO'
7. Para verificar se um número é divisível por outra usaremos o operador %, se o resto for 0
significa que é divisível.
x = numero % i
9. Se o resto for zero quer dizer que o número não é primo e que o seu menor divisor é o valor da
variável i, digite os seguintes comandos para fazer isto.
divisor = i
tipo = 'O número não é primo'
10. Como não é necessário continuar o Loop você pode usar o comando break para parar o While.
break
11. Se o resto da divisão não for zero, continue a aumentar a variável i com o mais 1. i = i +
1
12. Para finalizar imprima na tela as mensagens se o número é primo ou não e qual é o seu menor
divisor. print(tipo)
print(f'O menor divisor é: {divisor}' if divisor > 0 else '')
Objetivo: Nesta atividade você vai criar um menu usando o While, este menu
poderá ser utilizado em conjunto com outros códigos para que a execução do
programa seja realizada até que o usuário deseje sair. Comandos utilizados:
Variáveis e while.
1. Uma maneira fácil de criar um menu para repetir um código é utilizando o While, normalmente
é pedido para o usuário apertar uma tecla para o programa continuar ou sair.
2. Podemos incorporar no menu também a opção de limpar a tela com o comando de sistema
operacional (cls ou clear).
3. Faça o menu ficar repetindo até que o usuário aperte a tecla X.
Neste capitulo você irá estudar a criação de listas e tuplas, em Python as listas e tuplas
são sequências ou coleções ordenadas de valores, estes valores são chamados
elementos ou itens. A diferença da Lista e Tuplas é que a tupla uma vez criada não
pode ser modificada, ela é imutável, e a lista pode ter os valores incluídos, alteramos
Objetivos:
• Aprender a montar uma tupla ou lista.
• Listar os itens da tupla ou lista.
• Usar tupla / lista multidimensional.
• Manipular dados de uma lista.
• Contar a quantidade de itens de uma tupla / lista.
Tópicos do capítulo
• Criação de Tupla, utilize o símbolo ().
• Criação de Lista, utilize o símbolo [].
• Tupla ou Lista Multidimensional.
Objetivo: Nesta atividade você vai escrever um número por extenso, para isto usará
uma tupla. A tupla é um array que contém dados que não podem ser alterados.
Comandos utilizados: Tupla, operadores / e %
Criando a A tupla é um array, e para cria-la use os () e dentro deles coloque os valores
tupla desejados, por exemplo.
Tupla = (‘valor1’, ‘valor2’).
Usando a Para usar o valor de uma tupla indique a posição dela começando pelo valor
tupla zero, para mostrar o valor use os [].
Print(Tupla[1]
5. Agora peça para o usuário digitar um número inteiro de 0 a 99, para números maiores
poderíamos complementar o código facilmente com novas tuplas.
pos = int(input('Digite um número entre 0 e 99: '))
6. Agora será necessário verificar com um if qual a faixa está o número informado, usaremos a
faixa abaixo de 10, abaixo de 10, abaixo de 99 e se for informado um número acima podemos
avisar o usuário que o número deve ser até 99. if pos < 10: elif pos < 20:
elif pos <=
99:
else:
7. Para cada faixa de valores você vai precisar indicar um código específico para mostrar o
resultado do valor por extenso, comece pela faixa menor igual a 10, aqui você vai usar a tupla
número.
extenso = numeros[pos]
8. Para a faixa de menor igual a 19 e consequentemente maior que 10 usará a tupla dez, será
necessário subtrair 10 do valor para pegar a tupla correta.
extenso = dez[pos-10]
9. E para faixa ente 20 e 99 será necessário separar os números em duas partes, pegar a dezena
e a numeral, para isto podemos usar os comandos de resto e divisão.
dezena = int(pos / 10)
numeral = (pos % 10)
10. Ainda será necessário colocar um if para verificar se o número ´0, pois aí não será necessário
usar a palavra zero.
numero = '' if
(numeral!=0):
numero = ' e ' + numeros[numeral]
extenso = dezenas[dezena] + numero
11. Para o else coloque uma mensagem que foi informado um número maior que 99.
extenso = 'Número maior que 100...'
Objetivo: Nesta atividade você vai criar um jogo usando tupla e tupla multidimensional.
Comandos utilizados: Tupla, Tupla Multidimensional, biblioteca random e randint.
Random A biblioteca random permite que você use números aleatórios
3. Agora crie um menu com while para o programa seja repetido enquanto o usuário apertar S.
aproveite e limpe o terminal assim que o while for executado.
opcao = 's' while opcao.upper()=='S': system('cls')
if(name == 'nt') else system('clear')
4. Para sortear a peça que o computador vai utilizar você vai usar a biblioteca random com o
método randint(), no randint é possível indicar o valor inicial e o final do sorteio, neste caso
será de 0 a2.
computador = random.randint(0,2)
5. Peça para o usuário informar a peça que deseja utilizar, faça um menu informando o valor de
cada peça de 0 até 2. jogador = int(input('''Escolha uma opção para se
jogar:
[0] Pedra
[1] Papel
[2] Tesoura
Digite sua escolha: '''))
6. Crie uma tupla com os itens que possam ser escolhidos, a tupla tem que seguir a mesma
sequência do menu.
pecas = ("Pedra", "Papel", "Tesoura")
7. Imprima na tela as jogadas que foram feitas, tanto do usuário quanto do computador.
print('Você escolheu {}' . format(pecas[jogador])) print('O
computador escolheu: {}' . format(pecas[computador]))
8. Para sabermos quem ganhou e quem perdeu você pode criar uma tupla multidimensional, veja
a tabela abaixo para ajudar a entender como ela funcionará.
9. Para montar a tupla multidimensional você pode fazer conforme o código abaixo:
tabela = ((0, 1, -1),(-1, 0, 1),(1, -1, 0))
10. E para pegar a jogada realizada basta indicar as duas dimensões da jogada, indicando primeiro
a informação da linha e depois a informação da coluna.
jogada = tabela[computador][jogador]
11. Agora basta fazer uma verificação se a jogada foi 0, 1 ou -1. Utilize um if para isto. if
jogada == 0:
resultado = "Deu empate vocês escolheram a mesma peça"
elif jogada == 1:
resultado = "Você ganhou!"
else: resultado = "O computador
ganhou"
12. Imprima no terminal o resultado do jogo e peça para o jogador apertas S para jogar
novamente.
print(resultado)
opcao=input('Jogar novamente? Aperte S(sim) para jogar novamente. ')
Objetivo: Nesta atividade você vai cadastrar o nome de pessoas e seu celular utilizando
listas e ao final irá imprimir uma lista estes dados.
Comandos utilizados: Lista e método append, len para listas
Criando a A lista é um array, e para cria-la use os [] e dentro deles coloque os valores lista
desejados, diferente da tupla que é estática a lista pode ter índices adicionados, alterados
ou excluídos.
3. Peça para o usuário um nome e guarde na variável nome e faça a mesma coisa com o celular.
nome = input("Informe o nome: ")
celular = input("Informe o celular: ")
4. Agora será necessário acrescentar estes valores nas listas listaNome e listaCelular, para isto
usaremos o método append da lista.
listaNome.append(nome)
listaCelular.append(celular)
5. Pronto agora o loop vai permitir que você fique cadastrando quantos nomes e celulares quiser,
até apertar x para parar.
6. Ao final use um print para mostrar os nomes e celulares cadastrados, neste caso use um for /
range, o comando len(listaNome) conta quantos itens foram cadastrados. for i in
range(len(listaNome)): print('Nome: ', listaNome[i], ' - Celular:' ,
listaCelular[i])
Objetivo: Para executar esta atividade será necessário que a Atividade 2 (Pedra, Papel e
Tesoura) esteja funcionando.
Comandos utilizados: Criação de Contador.
Neste capítulo você vai criar funções usando o comando def dentro um código, o
recurso de criar funções é muito usado em programação para reutilizar um código
sempre que for necessário não precisando digitá-lo novamente. Outro recurso que irá
estudar é o tratamento de erro usando o try / except, o tratamento de erros no Python
é realizado pelas exceções que podem ser tratadas de uma maneira especial ou de
forma genérica. Além disto aprenderá a usar funções dos módulos math e datetime
do Python, o primeiro contém diversas funções matemáticas e o segundo permite a
manipulação de variáveis no formato de data e hora.
Objetivos:
• Criar funções.
• Utilizar argumentos nas funções.
• Tratar erros no código usando try except.
• Usar módulos (bibliotecas) do Python com suas respectivas funções.
• Usar o módulo math e datetime com as suas funções.
Tópicos do capítulo
• Criação de funções.
• Tratamento de erros.
• Módulo math.
• Módulo datetime.
11. Faça a mesma coisa para as demais funções de subtração, multiplicação e divisão. def
subtracao(x, y):
print("Subtracao: ", x-y)
def multiplicacao(x, y):
print("Multilicence: ", x*y)
def divisao(x, y):
print("Divisao: ", x/y)
12. Com as funções criadas podemos utilizá-las, crie um loop para que ao final o usuário possa
iniciar a calculadora.
opcao=1 while
opcao:
13. Peça ao usuário primeiramente os dois números para fazer os cálculos matemáticos.
x = float(input("Primeiro número: "))
y = float(input("Segundo número: "))
16. Com o operador matemático escolhido utilize o comando if para executar a função correta, o
print no terminal será realizado diretamente pela função. if(operador==1):
soma(x, y) if(operador==2): subtracao(x, y) if(operador==3):
multiplicacao(x, y)
if(operador==4):
divisao(x, y)
17. Peça para o usuário apertar 0 para finalizar ou qualquer tecla para continuar.
opcao = input("\nAperte 0 para Sair ou Enter para continuar")
if opcao=="0": opcao=int(opcao)
Objetivo: Nesta atividade você vai criar a utilizar o tratamento de erro do Python, irá
reutilizar o código da atividade anterior para fazer o tratamento de erros dentro das
funções.
Comandos utilizados: Tratamento de erro Try / Except
Try / except Na linguagem de programação erros podem acontecer e devem ser tratados,
no Python os erros são tradados pelo comando Try / except.
4. Foi usado um except geral, todos os erros irão passar por este except, que pode ser uma divisão
por zero ou um valor de argumento que não seja numérico.
5. Agora você irá colocar um tratamento de erro específico para a divisão por Zero, que é o except
ZeroDivisionError, a variável erro irá retornar a mensagem de erro em inglês de divisão por zero.
except ZeroDivisionError as erro: print(erro)
6. Faça o tratamento de erro para as demais funções, nos outros operadores não é necessário
colocar a divisão por zero. def soma(x, y): try:
print("Soma: ", float(x)+float(y))
except:
print("Ocorreu um erro") def
subtracao(x, y):
try:
print("Subtracao: ", float(x)-float(y))
except:
print("Ocorreu um erro")
def multiplicacao(x, y):
try:
print("Multiplicacao: ", float(x)*float(y))
except:
print("Ocorreu um erro")
4. Execute o código e será listado no terminal uma ajuda de todas as funções do módulo math.
5. Agora você utilizará alguns das principais funções, o primeiro será o math.ceil(), esta função
retorna a parte inteira de um número.
print(math.ceil(4.2))
10. Para o arredondamento de um float .não é necessário usar a biblioteca math, use o comando
round.
print(round(3.988, 1))
3. Primeiramente você irá imprimir no terminal a data e hora atual na tela para conhecer a função
today().
print(datetime.now())
4. Agora guarde o valor da data e hora atual em uma variável e imprima no terminal o tipo desta
variável.
atual = datetime.now() print(type(atual))
5. Agora teste a criação de uma data a partir da classe datetime informando o ano, mês e dia
nesta sequência e imprima no terminal o tipo da variável para conferir o tipo da variável.
montarData = datetime(2021, 10, 5) print(type(montarData))
6. Para formatar uma variável do tipo datetime você pode usar a função strftime indicando a
formatação desejada, neste caso usaremos o formato dia/mês/ano.
print(atual.strftime('%d/%m/%Y %H:%M'))
7. Peça para o usuário uma data no formato dia/mês/ano e guarde em uma variável.
dataNascimento = input('Informe a sua data de nascimento dd/mm/aaaa: ')
8. Agora você irá precisar transformar esta data que é uma string em uma variável datetime
usando a função strptime.
dataNascimento = datetime.strptime(dataNascimento, '%d/%m/%Y')
9. Observe que o formato da string tem que ter o mesmo formato indicado na função strptime.
10. Agora você irá criar uma função para calcular a idade a partir da data informada, lembre-se
que as funções devem ser criadas sempre no início do código, abaixo das declarações dos
módulos.
12. Para usar esta função, na parte final do código coloque o seguinte comando.
print(f'Você tem: {idade(dataNascimento)} anos')
13. Agora crie uma outra função para mostrar quantos dias a pessoa já viveu. Para calcular dias
corridos basta subtrair uma data de outra. def dias(nascimento):
today = datetime.today() return
abs((nascimento - today).days)
14. E para usar esta função, novamente digite na parte final do código.
print(f'Você já viveu {dias(dataNascimento)} dias')
Objetivo: Nesta atividade você vai criar um jogo onde irá acertar um símbolo através
de um cálculo matemático. Você vai usar todos os conceitos visto até aqui e
basicamente será necessário criar uma lista como fizemos na atividade de tabuada.
Comandos utilizados: Variáveis, for, while e chr.
chr O comando chr usa a tabela ascii para mostrar os caracteres especiais, no exemplo
acima os caracteres usados foram do 16 ao 25, em alguns terminais estes
caracteres podem não ser impressos corretamente, se não funcionar use
a sequência de 179 a 190
1. A lógica deste jogo é que será pedido para que o usuário pense em um número de 11 a 99 e aí
peça para o usuário somar os dois dígitos do número e subtrair este resultado do número inicial.
Neste capítulo você irá ver as informações básicas para a criação de Classes, uma
classe permite uma forma de organizar dados e funcionalidades. Criar uma classe cria
um tipo de objeto novo, permitindo que ele seja reaproveitamento inúmeras vezes. As
classes podem ter métodos e propriedades.
Objetivos:
• Entender o que é uma classe.
• Criar uma classe.
• Criar métodos e propriedades dentro de uma classe.
• Consumir esta classe.
Tópicos do capítulo
• Criar a classe.
• Consumir a classe.
Objetivo: Nesta atividade você vai criar uma classe com propriedades simples do
Python. A Classe será um recibo onde é passado as informações de nome e valor e
será retornado um recibo com estas informações.
Comandos utilizados: Class
class A classe pode ter variáveis, funções que viram métodos ou propriedades, a classe
precisa ser instanciada para ser usada, o Python usa todas as
características mais modernas da linguagem de programação para a
criação de classe. Nesta atividade veremos as informações básicas de
uma classe
4. Você vai precisar indicar os valores iniciais da instancia da classe, para isto temos o construtor
__init__, nesta classe você vai pedir inicialmente o nome da pessoa que aparecerá o recibo.
def __init__(self):
5. Todas as funções de uma classe têm como o primeiro argumento self, neste caso você irá usar
um segundo argumento com a variável nome.
def __init__(self, nome):
self.nome = nome
7. Para o valor do recibo você vai usar a construção de uma propriedade, neste caso precisaremos
de duas funções uma para passar os dados e outra para retornar os dados.
8. Para retornar os dados é necessário identificar a função com o comando @property, conforme
exemplo abaixo:
@property def
valor(self):
return(self._valor)
9. Para passar os dados será criada outra função identificada com o comando @valor.setter.
@valor.setter def
valor(self, value):
self._valor = value
10. Você vai criar também uma função que retornará o valor informado em extenso e para isto
usaremos a biblioteca num2words.
11. É necessário que você instale esta biblioteca primeiramente indo em um terminal e digitando.
pip install num2words
12. Agora indique a biblioteca no início do código, antes da declaração class.
from num2words import num2words
13. Para a função do valor por extenso você vai precisar de uma nova função, conforme o código
abaixo: def extenso(self ): vExtenso =
num2words(self._valor,lang='pt_BR', to='currency') return vExtenso
14. A classe está quase pronta, para que finalize este código você vai criar um retorno da classe
usando o construtor padrão __str__ nele iremos imprimir um recibo com os dados informados
para a classe:
def __str__(self): texto = 'Recebemos de {} a quantia
de R$ {:.2f} ({}))' . format(self.nome, self._valor,
15. Agora podemos iniciar os códigos do outro arquivo (CONSUMIR) para que possamos utilizar
esta classe.
16. Primeiramente crie uma referência para o arquivo que está a classe.
from cap07_atividade01Classe import recibo
17. Para instanciar a classe use uma variável e passe o nome da pessoa que irá receber o recibo.
dados = recibo('Laercio Azevedo de Sa')
Quando é instanciada a classe as informações do construtor __init__ são utilizados.
18. Agora passe o valor do recibo através da propriedade valor.
dados.valor = 51.13
20. Para a descrição não foi criado um valor de retorno, mas é possível visualizar a valor informado
para a descricao() usando a variável que recebeu o valor (_descricao).
print(dados._descricao)
21. E para mostrar no terminal o recibo pronto basta imprimir a classe com o comando print, será
usado o construtor __str__.
print(dados)
Neste capítulo você vai aprender a manipular arquivos do tipo texto/csv para poder
ler, editar e criar. Você irá trabalhar com os dicionários do Python e Classes para
simular um banco de dados.
Objetivos:
• Ler arquivos texto, definir codificação do arquivo.
• Transformar um arquivo csv em uma lista.
• Criar arquivos em txt.
• Utilizar dicionários para simular uma base de dados relacional.
Objetivo: Nesta atividade você vai ler um arquivo no formato CSV, verificar as opções
de enconding (codificação de caracteres) e separar o arquivo em uma lista para ler as
informações de cada coluna. Para simplesmente ler um arquivo no formato de texto,
que pode ser csv e txt não é necessário de nenhuma biblioteca, para arquivos PDF,
Excel, Word são necessárias bibliotecas para fazer esta leitura e para arquivos no
formato JSON, XML e HTML é possível ler os arquivos como texto, mas para explorar
os todos os recursos é recomendável usar alguma biblioteca para facilitar o trabalho
de leitura.
Comandos utilizados: Biblioteca os.path, comando open mode “r”, lista e for.
Os.path A biblioteca os.path permite pegar dados de um arquivo, alguns dos
métodos que usaremos são:
Os.path.isfile(x) Verifica se o arquivo existe.
Os.path.isdir(x) Verifica se o diretório existe.
os.path.getsize(x) Retorna o tamanho do arquivo
os.path.getmtime(x) Retorna a data de modificação do arquivo
os.listdir(path) Lista os arquivos de uma determinada pasta
os.remove(x) Apaga um arquivo
Open mode “r” Para abrir um arquivo no Python use o comando open e para ler este
arquivo use o mode “r”
Diretório Para descobrir o diretório do código atual:
os.path.dirname(os.path.realpath(__file__))
Para descobrir o diretório da pasta que executou o código atual:
os.getcwd()
Você vai precisar do arquivo produtos.csv (no capítulo Anexos você tem o conteúdo deste
arquivo), declare uma variável com o nome do arquivo.
3. Verifique o arquivo está na mesma pasta que o arquivo .py. if
(os.path.isfile(arquivo)):
4. Abra o arquivo em mode ‘r’ e neste caso o arquivo está com codificação de caracteres UTF-8, é
importante definir isto para não ter problemas com acentuação.
produtos = open(arquivo, 'r', encoding="utf-8")
5. Declare uma variável para guardar o tamanho do arquivo usando a método getsize().
tamanho = os.path.getsize(arquivo)
6. Declare uma variável para guardar a data e hora da última modificação do arquivo usando o
método getmtime. A data vem no formato timestamp.
modificacao = os.path.getmtime(arquivo)
7. Imprima no terminal estas informações, será necessário formatar a data usando o método
fromtimestamp da biblioteca datetime.
print('Data de Modificação:',
datetime.datetime.fromtimestamp(modificacao))
print('Tamanho do arquivo (bytes):', tamanho)
9. Para ler o arquivo csv você pode usar o comando for, o arquivo será quebrado por linha. for
line in produtos:
10. Para quebrar as colunas do arquivo csv podemos usar o comando split.
colunas = line.strip().split(";")
As colunas do arquivo são:
Código do Produto;
Nome do Produto;
Categoria do Produto;
Tipo de Embalagem;
Estoque;
Quantidade para separação de pedido;
Produto Inativo (0 ativo e 1 inativo);
Estoque mínimo;
Valor Venda; Valor
de Custo.
13. Sempre que abrir um arquivo é importante usar o comando close() para fecha-lo.
produtos.close()
14. Para verificar se o arquivo está fechado é possível usar o comando nome_arquivo.closed, este
comando retorna true ou false.
15. Para finalizar faça uma impressão dos dados da lista usando um for. for prod in
listaProdutos:
print(prod)
Objetivo: Nesta atividade você vai criar um dicionário a partir de um arquivo csv, com
o dicionário é possível simular uma base de dados e pesquisando dentro do dicionário
a partir de um código chave.
Comandos utilizados: Dicionário.
Dicionário Para criar um dicionário no Python use {}.
4. Instancie uma variável para o dicionário de dados, para criar dicionários use os símbolos {}.
dicCategoria = {}
5. Use o comando for para ler o arquivo categorias. O arquivo possui 3 informações que são
código da categoria, nome da categoria e descrição da categoria.
dicCategoria = {}
7. Para criar um dicionário é necessário definir um valor de chave e um valor para os dados, use
o código para a chave e crie uma lista com as informações do nome e descrição.
colunas = line.strip().split(";")
dados = [colunas[1], colunas[2]]
dicCategoria[colunas[0]] = dados
Objetivo: Nesta atividade você vai criar um relatório texto com os dados dos arquivos
de categoria e produtos, para fazer isto primeiramente vai transformar os exemplos
4. Crie uma função com o nome de dicCat, esta função irá retornar um dicionário. def
dicCat(self):
5. Esta função irá usar o mesmo código da atividade02 do capítulo 08. arquivo =
'categorias.csv'
categorias = open(arquivo, 'r', encoding="utf-8")
dicCategoria = {} for line in categorias:
colunas = line.strip().split(";")
dados = [colunas[1], colunas[2]]
dicCategoria[colunas[0]] = dados
categorias.close()
6. No final do código não utilize os prints, pode apagar eles e substituir por um return
dicCategoria.
return dicCategoria
7. Agora você irá criar a segunda classe deste arquivo, defina o nome da classe como
tabProd. class tabProd:
8. Crie uma função com o nome de listProd, esta função irá retornar uma lista. def
listProd(self):
9. Esta função irá usar o mesmo código da atividade01 do capítulo 08. arquivo =
'produtos.csv' produtos = open(arquivo, 'r', encoding="utf-8")
listaProdutos = [] for line in produtos:
colunas = line.strip().split(";")
colunas[0]=int(colunas[0])
colunas[2]=int(colunas[2])
colunas[4]=int(colunas[4])
colunas[5]=int(colunas[5])
colunas[6]=int(colunas[6])
colunas[7]=int(colunas[7])
colunas[8]=float(colunas[8])
colunas[9]=float(colunas[9])
listaProdutos.append(colunas) produtos.close()
Neste capítulo você vai aprender a fazer uma extração de dados na web (web
scraping) no Python, este recurso ficou disponível a partir da versão 3. Será
necessário baixar as bibliotecas de web scraping, as que você vai usar são: a Beautiful
Soup e a biblioteca “requests”. Outra biblioteca que usará será a Selenium, que nada
mais é, do que uma biblioteca que permite com que o Python abra o seu navegador
para executar os comandos desejados e usará em conjunto dela o Chromedriver para
ter total controle do browser Chrome.
Objetivos:
• Entender o que é e como fazer uma extração de dados.
• Instalar a principais bibliotecas para extração de dados.
• Extrair partes de um site.
• Realizar download de arquivos de um site.
• Utilizar o Selenium para manipular o Chrome.
Tópicos do capítulo
• Extrair dados.
• Realizar Download de arquivos.
• Controlar o Chrome e enviar mensagens pelo WhatsApp Web.
Objetivo: Nesta atividade você irá extrair dados da cotação de Dólar e Euro do site
do UOL, você vai verificar que algumas vezes o conteúdo da página muda um pouco
em relação ao que o “BeautifulSoup” acaba lendo.
Comandos utilizados: Biblioteca “requests” e “BeautifulSoup”.
8. Nesta página você precisa pegar a informação da cotação do Dólar e do Euro, é necessário ter
um conhecimento em HTML para conseguir usar os comandos do “bs4”, primeiramente você
irá procurar a seção que tem a class:currencies.
secaoDinheiro = html_soup.find_all('section', class_ = 'currencies')
10. Observe que foi encontrado uma seção, mas nenhuma informação de texto somente a tag e a
classe, então você vai tentar procurar a div que tem a class:info.
info = html_soup.find_all('div', class_ = 'info')
11. Faça um print da quantidade de itens que achou e dos dados encontrados, use o método text
para visualizar apenas o texto sem a tag.
print(len(info)) print(info)
print(info[0].text)
12. Novamente foi retornado apenas uma seção e neste caso foi retornado um texto sobre o IPCA.
13. Ainda não tem as informações dos valores do dólar e do Euro, para uma última tentativa
procure os dados da tag span class: value bra.
infoValor = html_soup.find_all('span', class_ = 'value bra')
15. Desta forma não foi possível encontra a informação desejada, precisaremos salvar o arquivo
HTML e analisar em qual lugar os dados estão.
relatorio = open("uol.txt", mode="w", encoding="utf-8")
relatorio.write(html_soup.prettify())
16. Analise o arquivo salvo, verifique os valores de Dólar e Euro estão dentro de uma tag a com a
class: 'subtituloGrafico subtituloGraficoValor’. Faça a pesquisa desta classe.
18. Faça um for para mostrar o texto dos itens encontrados. for valor in valores:
print(valor.text)
19. Pronto agora você conseguiu pegar as informações que desejava. Observe que as vezes pode
ser bem trabalhoso conseguir extrair uma informação de um site.
Objetivo: Nesta atividade você vai extrair dados de uma página Web, para isto o
Python tem duas bibliotecas que é a “BeautifulSoup” e “requests”, é necessário um
conhecimento básico de HTML para realizar esta raspagem de dados. Para este
exemplo foi escolhido o site
https://www.imdb.com/search/title/?release_date=202001-01,2020-12-
31&sort=user_rating,desc nele você vai pegar os 10 filmes mais bem ranqueados.
Comandos utilizados: Biblioteca “requests” e “BeautifulSoup”.
5. Crie uma variável para guardar a url que iremos extrair dados.
url = 'https://www.imdb.com/search/title/?release_date=2020-01-01,2020-
1231&sort=user_rating,desc'
6. Crie uma variável para pegar os dados da página para usar com a “bs4”.
response = get(url)
10. Se foi encontrado 50 está correto, a página lista 50 filmes, faça um for para ler os
primeiros 10 filmes. for i in range(10):
12. Para pegar o nome do filme é necessário informar que o nome está em uma tag h3 e
uma tag a.
nome = filme_dados.h3.a.text
13. Para a data de lançamento será necessário procurar na tag h3 o span com class: 'lister-
itemyear text-muted unbold’.
lancamento = filme_dados.h3.find('span', class_ = 'lister-item-year
text-muted unbold')
14. Para os votos é necessário procurar na tag h3 um span com o atributo name=nv.
votos = filme_dados.find('span', attrs = {'name':'nv'})
15. Alguns filmes contém episódios, observe o código HTML da parte do episódio.
16. E para os episódios você irá procurar um small com a classe: ‘text-primary unbold’.
episodio = filme_dados.h3.find('small', 'text-primary unbold')
17. Como nem todos os filmes têm episódio você precisará verificar se ele existe ou não,
primeiro crie uma variável para guardar os dados do episódio.
x=""
20. Agora imprima as informações encontradas, a pontuação é a única tag com Strong em
todo o texto, pode pegar ela diretamente da variável filme_dados.
print('{} - {} {}\nPontuação: {} - Votos: {}' . format(i + 1, nome ,
lancamento.text, filme_dados.strong.text, votos.text))
Objetivo: Nesta atividade você vai procurar uma informação específica do site
https://chromedriver.chromium.org/downloads neste site temos a versão mais
atualizada de uma biblioteca que usaremos para controlar o browser Chrome.
Comandos utilizados: Biblioteca “requests” e “BeautifulSoup”.
3. Precisamos pegar o código da versão do segundo link, o primeiro indica a versão beta,
o segundo a versão estável e o terceiro a versão anterior, com esta informação vamos redirecionar
o site para a página de download do arquivo desta biblioteca.
4. Importe as bibliotecas do “requests”, “bs4” e “os”. from requests import get
from bs4 import BeautifulSoup from os import system, name
system('cls') if(name == 'nt') else system('clear')
5. Crie uma variável para guardar a url que iremos extrair dados.
url = 'https://chromedriver.chromium.org/downloads'
6. Crie uma variável para pegar os dados da página para usar com a “bs4”.
response = get(url)
7. Imprima o status da página para ver se ela esta funcionando, tem que retornar 200.
print(response.status_code)
11. Verifique se o texto da ul contém ‘you are using Chrome version’ , foi tirada a palavra
if pois ela esta separada do restante do texto por outra tag. if (tags[i].text.find('you
are using Chrome version')>0):
13. Verifique se existe mais que dois itens da lista da pesquisa de li. if
(len(listas)>=1):
Objetivo: Nesta atividade você vai realizar o download de um arquivo zipado em uma
determinada pasta e descompactar este arquivo.
Comandos utilizados: Biblioteca zipfile, download de arquivos da web.
3. Crie uma variável para armazenar a url do arquivo que fará o download.
url =
'https://chromedriver.storage.googleapis.com/94.0.4606.61/chromedriver_win
32.zip'
5. Crie uma variável para guardar o caminho da pasta do arquivo de código. pasta =
os.path.abspath(os.getcwd())
7. Para realizar o download você irá criar uma função, no início do código crie uma função
com o nome download e com os argumentos response e output. É necessário definir uma variável
com um valor em bytes do tamanho dos pacotes de download use 1024.
BUFF_SIZE = 1024 def
download(response, output):
8. Crie uma variável para somar o tamanho do download do arquivo, inicie com zero.
total_downloaded = 0
9. Faça um while para ir baixando o arquivo, este while será continuo e só irá parar
quando o arquivo for totalmente baixado. while True:
10. Crie uma variável para iniciar a leitura do arquivo para download. data =
response.read(BUFF_SIZE)
12. Se não existirem mais dados para baixar realize um break para finalizar o while. if
not data: break
16. Agora iremos criar uma função para descompactar o arquivo que foi feito o download.
Crie uma função com o nome zip logo abaixo da função download.
17. Faça uma verificação se o arquivo não existe, e no else colocaremos o código para
descompactar o arquivo. if not os.path.exists(path):
print("Arquivo {} não existe".format(path))
sys.exit(-1) else:
19. Volte ao código e após a chamada de uso da função download chame a função zip.
zip(f"{pasta}\chromedriver_win32.zip")
Objetivo: Nesta atividade você vai controlar o Chrome e enviar mensagens usando o
WhatsApp Web. Utilizando o Selenium.
Comandos utilizados: Biblioteca Selenium e Chromedriver.
4. É necessário também usar um timer para executar as ações, pois algumas podem
demorar alguns segundos e precisar sincronizar este tempo, para isto use a classe sleep da
biblioteca time.
from time import sleep
6. Para controlar o Chrome uma das maneiras mais fáceis de determinar o que deseja
fazer é pegar o XPath de um elemento HTML, para este exemplo usaremos 3 elementos da tela,
caixa de novo chat, a caixa de mensagem para enviar um texto e o botão de envio, crie uma variável
para cada elemento.
NEW_CHAT = '//*[@id="side"]/header/div[2]/div/span/div[2]/div'
MESSAGE_BOX =
'//*[@id="main"]/footer/div[1]/div/div/div[2]/div[1]/div/div[2]'
SEND = '//*[@id="main"]/footer/div[1]/div/div/div[2]/div[2]'
10. Indique com o comando get a pagina que deseja abrir, neste caso use a variável
WP_LINK. driver.get(WP_LINK)
11. Para este exemplo você vai criar duas listas, uma com telefones e outra com nomes
estas listas serão usadas para o envio das mensagens.
listaTelefone = ['5512981256440', '5512999999999'] listaNome
= ['Laercio', 'Teste']
12. Crie uma variável com o valor True, usaremos ela para verificar se já foi escaneado o
QRCode do WhatsApp Web.
contador = True
13. Inicie o um loop com esta variável. while (contador):
14. Agora coloque um sleep de 3 segundos, este sleep é necessário para que a execução do
código permita que as páginas sejam abertas e executadas, este tempo pode ser aumentado ou
diminuído dependendo da velocidade do celular e da internet.
sleep(3)
15. Inicie um try. try:
16. Coloque o código para encontrar o elemento NEW_CHAT na página através de XPAth
(find_element).
driver.find_element(By.XPATH, NEW_CHAT)
17. Se encontrar mude a variável para False.
contador = False
Códigos Completos
"""
Cap01 - Atividade 04
"Olá Mundo!"
Objetivos:
"""
Objetivos:
Nesta atividade você vai usar o comando input para interagir com
o usuário pedindo uma informação e usará o print de outra forma
Comandos utilizados:
print, input, format e posição de substituição
"""
# Usando o print
print('Seja bem-vindo a aula de' + ' Python!') #
podemos usar o comando format para concatenar texto
print('Olá {}' . format(input('Qual o seu nome? ')))
"""
Cap02 - Atividade 01
Somando Números
Objetivos:
Nesta atividade você vai somar dois numeros usando variáveis e irá
verificar os tipos de dados de uma variável e como converter uma variável
em um tipo diferente.
"""
Cap02 - Atividade 02
Área de um retângulo
Objetivos:
Nesta atividade você vai calcular a área de um retângulo através de dois
números fornecidos pelo usuário e fará também a verificação se os dados
informados são realmente números.
Comandos utilizados:
Float e método isnumeric()
"""
"""
Cap02 - Atividade 03
Objetivos:
Nesta atividade você vai trabalhar com dados de texto, usando vários
metódos para verificar e modificar o valor de uma variável.
Comandos utilizados:
Função len e os métodos upper, lower, capitalize, find, replace,
isalpha, isalnum, split, center
""" from os import system system('cls') nomecompleto
= input('Informe o seu nome completo: ')
# função len retorno a quantidade de caracteres de uma variável print('1.
Quantidade de caracteres:', len(nomecompleto))
# metodos utilizados:
"""
Objetivos:
Nesta atividade você vai calcular a raiz quadrada a partir do operador
matemático ** (exponenciação). O valor será passado pelo usuário e
verificaremos se este valor é numerico ou decimal.
Comandos utilizados:
Variáveis, operador Exponenciação (**) e métodos isnumeric e isdecimal.
"""
"""
Cap03 - Atividade 01
Verificar Número Par e Impar
Objetivos:
Nesta atividade você vai usar uma estrutura de decisão (if / else) para
verificar se um número é par ou ímpar.
"""
Cap03 - Atividade 02
Conversor de Medidas
Objetivos:
Nesta atividade você vai converter um número em centimetros para
Polegada, Pé ou Jarda. Será necessário usar o comando if / elif / else.
Comandos utilizados:
If / elif / else, formatação de números com posição de substituição
{:.4f}
"""
"""
Cap03 - Atividade 03
Folha de Pagamento
Objetivos:
Nesta atividade você vai calcular uma folha de pagamento usando o
comando if aninhado e mostrando o resultado dos valores de Imposto de
Renda e INSS a serem pagos.
Comandos utilizados:
Variáveis, if, operadores matemáticos e formatação com posição de
substituição.
""" from os import system, name system('cls')
if(name == 'nt') else system('clear') print('***
Folha de Pagamento ***') salario =
float(input('Informe o seu salario: '))
else:
inssP = 0.075 inss
= salario * inssP base =
salario – inss
# Calcular IR if
base > 4664.68:
irP = 0.275
deducao = 869.36
elif base > 3751.06:
irP = 0.225
deducao = 636.13
elif base > 2826.66:
irP = 0.15 deducao
= 354.80 elif base >
1903.98: irP =
0.075 deducao =
142.80
else:
irP = 0
deducao = 0
Objetivos:
Nesta atividade você vai calcular o IMC a partir de um peso e uma
altura, usará a comando if para mostrar o resultado do calculo do IMC.
Comandos utilizados:
Variáveis, if / elif / else
"""
"""
Objetivos:
Nesta atividade você vai montar uma Tabuada usando a estrutura de Loop
do For e range.
Comandos utilizados:
Comandos for e range
""" from os import system, name system('cls') if(name
== 'nt') else system('clear') print('*** Tabuada
Simples ***') multiplicador = int(input('Informe o
multiplicador ')) # para criar o loop usaremos a
função for e range for i in range(10):
print('{} * {} = {}' . format(multiplicador, i, i*multiplicador))
"""
Cap04 - Atividade 02
MultiTabuada
Objetivos:
Nesta atividade você vai construir uma multitabuada de duas maneiras, na
primeira usando for e na segunda usando for aninhado
Comandos utilizados:
Comandos for range
"""
from os import system, name
system('cls') if(name == 'nt') else system('clear')
print('\n*** MULTI TABUADA 1 ***') for i in
range(1, 11):
print('{: >4} {: >4} {: >4} {: >4} {: >4} {: >4} {: >4} {: >4} {: >4} {:
>4}' . format(i, i*2, i*3, i*4, i*5, i*6, i*7, i*8, i*9, i*10))
print('\n*** MULTI TABUADA 2 ***') # usando um for dentro de
outro for i in range(1, 11):
Objetivos:
Nesta atividade você vai criar um menu usando o While, este menu poderá
ser utilizado em conjunto com outros códigos para que a execução do
programa seja realizado até que o usuário deseje sair.
Comandos utilizados:
Variáveis, while
Objetivos:
Nesta atividade você vai criar um jogo usando tupla e tupla
multidimensional.
Comandos utilizados:
Tupla, Tupla Multi-Dimensional, biblioteca random e randint
"""
elif jogada == 1:
resultado = "Você ganhou!"
else:
resultado = "O computador ganhou"
print(resultado) opcao=input('Jogar novamente? Aperte S(sim) para
jogar novamente. ')
"""
Cap05 - Atividade 03
Lista de Cadastro
Objetivos:
Comandos utilizados:
Lista e método append
"""
from os import system, name system('cls') if(name
== 'nt') else system('clear') opcao = '' listaNome
= [] listaCelular = []
while
opcao!='x':
nome = input("Informe o nome: ")
listaNome.append(nome)
listaCelular.append(celular) opcao=input('\nAperte X para Finalizar
o cadastro ou qualquer tecla para continuar ')
for i in
range(len(listaNome)):
print('Nome: ', listaNome[i], ' - Celular:' , listaCelular[i])
"""
Objetivos:
Nesta atividade você vai criar um jogo usando tupla e tupla
multidimensional.
Comandos utilizados:
Tupla, Tupla Multi-Dimensional, biblioteca random e randint
"""
elif jogada == 1:
"""
Cap06 - Atividade 01
Criação de Funções
Objetivos:
Nesta atividade você vai aprender a criar funções do python, as funções
são muito uteis para que você reaproveite código.
Comandos utilizados:
Funções def, while
"""
while opcao:
print("1. Somar")
print("2. Subtrair")
print("3. Multiplicação")
print("4. Divisão ")
"""
Cap06 - Atividade 02
Tratamento de erros
Objetivos:
Nesta atividade você vai criar a utilizar o tratamento de erro do
python, irá reutilizar o código da atividade anterior para fazer o
tratamento de erros dentro das funções.
Comandos utilizados:
Tratamento de erro Try / Except
"""
# def = função def
soma(x, y):
try:
print("Soma: ", float(x)+float(y))
except:
print("Ocorreu um erro")
print("Ocorreu um erro")
def divisao(x,
y): try:
print("Divisao: ", float(x)/float(y))
except ZeroDivisionError as erro:
print(erro)
except:
print("Ocorreu um erro")
opcao=1
while opcao:
x = float(input("Primeiro numero: "))
y = float(input("Segundo numero: "))
print("1. Somar")
print("2. Subtrair")
print("3. Multiplicação")
print("4. Divisão ")
operador = int(input("Opção:
"))
if(operador==1):
soma(x, y)
if(operador==2):
subtracao(x, y)
if(operador==3):
multiplicacao(x, y)
if(operador==4):
divisao(x, y)
Cap06 - Atividade 03
Biblioteca Math
Objetivos:
Nesta atividade você vai importar a biblioteca math, visualizar a ajuda
da biblioteca e usar algumas das principais funções.
Comandos utilizados:
Biblioteca math, funções ceil, fabs, floor, fmod, trunc
"""
import math
# use o comando help(biblioteca) para visualizar a sua ajuda help(math)
# inteiro para cima
print(math.ceil(4.2)) #
inteiro para baixo
print(math.floor(3.9))
# número absoluto
print(math.fabs(-1))
# mod = restante de uma
divisão print(math.fmod(9, 4))
# raiz quadrada
print(math.sqrt(36))
# não faz parte da bibilioteca math, é usado para arredondar um número.
print(round(3.988, 1))
"""
Cap06 - Atividade 04
Função de Datas
Comandos utilizados:
Biblioteca datetime, metodos strptime, strftime e today. Função
com return """ from datetime import datetime
def idade(nascimento):
"""
Cap07 - Atividade 01
Criar um Classe
Objetivos:
Nesta atividade você vai criar uma objeto de classe, aprendendo sobre os
metodos e propriedades e usar metodos especiais. Irá também aprender a
Comandos utilizados:
Classe, __init__, __str__, Propriedades e Metodos de uma classe
""" from num2words import
num2words class recibo:
def __init__(self,
nome):
self.nome = nome
self._valor = 0
self._descricao = ''
def __str__(self): texto = 'Recebemos de {} a quantia
de R$ {:.2f} ({}))' . format(self.nome, self._valor,
self.extenso())
descricao = '\nReferente {}' . format(self._descricao) if
(self._descricao!='') else ''
dados = '{}\n{}{}' . format('Recibo'.center(len(texto), '*'), texto,
descricao)
return(dados)
@property def
valor(self):
return(self._valor)
@valor.setter def
valor(self, value):
self._valor = value
def extenso(self ):
vExtenso = num2words(self._valor,lang='pt_BR', to='currency')
return vExtenso
"""
Cap07 - Atividade 01
Criar um Classe
Objetivos:
Nesta atividade você vai criar uma objeto de classe, aprendendo sobre os
metodos e propriedades e usar metodos especiais. Irá também aprender a
consumir esta classe.
Comandos utilizados:
Classe, __init__, __str__, Propriedades e Metodos de uma classe
""" from cap07_atividade01Classe import recibo dados =
recibo('Laercio Azevedo de Sa') dados.valor = 51.13
dados.descricao('desenvolvimento de sistemas em Python')
print(dados._descricao) print(dados)
"""
Objetivos:
Nesta atividade você vai ler um arquivo no formato CSV, verificar as
opções de enconding (codificação de caracteres) e separar os arquivo em
uma lista para ler as informações de cada coluna.
Comandos utilizados:
Biblioteca os, comando open, path, lista e for
"""
import os.path, datetime from
os import system, name
if (os.path.isfile(arquivo)):
produtos = open(arquivo, 'r', encoding="utf-8")
tamanho = os.path.getsize(arquivo) modificacao
= os.path.getmtime(arquivo) print('Data de
Modificação:',
datetime.datetime.fromtimestamp(modificacao))
print('Tamanho do arquivo (bytes):', tamanho)
listaProdutos = [] for line in produtos:
colunas = line.strip().split(";")
colunas[0]=int(colunas[0])
colunas[2]=int(colunas[2])
colunas[4]=int(colunas[4])
colunas[5]=int(colunas[5])
colunas[6]=int(colunas[6])
colunas[7]=int(colunas[7])
colunas[8]=float(colunas[8])
colunas[9]=float(colunas[9])
listaProdutos.append(colunas)
produtos.close() for prod in
listaProdutos:
print(prod)
Cap08 - Atividade 03
Criando uma Classe
Objetivos:
Nesta atividade você vai abrir criar uma classe com os dados de um
arquivo CSV e retornar um Dicionário.
Comandos utilizados:
Classe, Abrir Arquivo, Dicionário
"""
"""
Objetivos:
Nesta atividade você vai salvar um arquivo como um relatório em texto,
com as informações das classes realizadas anteriormente.
Comandos utilizados:
Bibliotecas, Classe, salvar um Arquivo, For
"""
import io
"""
Cap09 - Atividade 01
Extrair dados do Uol Economia
""" from requests import get
from bs4 import BeautifulSoup
from os import system, name
"""
Cap09 - Atividade 02
Extrair dados de filmes do site IMDB
""" from requests import get
from bs4 import BeautifulSoup
from os import system, name
system('cls') if(name == 'nt') else system('clear')
url = 'https://www.imdb.com/search/title/?release_date=2020-01-01,2020-12-
"""
Cap09 - Atividade 01
Extrair dados do site Chromedriver
""" from requests import get
from bs4 import BeautifulSoup
from os import system, name
url =
'https://chromedriver.chromium.org/downloads'
response = get(url) print(response.status_code)
if (len(listas)>=1):
print(listas[1].text) print(listas[1].text[-12:])
urldownload = 'https://chromedriver.storage.googleapis.com/' +
listas[1].text[-12:] + '/chromedriver_win32.zip'
print(urldownload)
"""
Cap09 - Atividade 04
url =
'https://chromedriver.storage.googleapis.com/94.0.4606.61/chromedriver_win
32.zip' response = request.urlopen(url) pasta =
os.path.abspath(os.getcwd()) out_file =
io.FileIO(f"{pasta}\chromedriver_win32.zip", mode="w")
download(response, out_file)
zip(f"{pasta}\chromedriver_win32.zip") print(f'Download realizado
na pagina {url}')
"""
WP_LINK = 'https://web.WhatsApp.com'
## XPATHS
SEND = '//*[@id="main"]/footer/div[1]/div/div/div[2]/div[2]'
MESSAGE_BOX =
'//*[@id="main"]/footer/div[1]/div/div/div[2]/div[1]/div/div[2]'
NEW_CHAT = '//*[@id="side"]/header/div[2]/div/span/div[2]/div'
driver =
webdriver.Chrome()
driver.get(WP_LINK)
envio.append(status)
print(envio) sleep(5)
driver.close()
Anexos
Arquivo produtos.csv