Prévia do material em texto
ctrl n executa
shift enter add uma nova célula
+ concatena
In verifica se a informação está contida em um texto
SITES IMPORTANTES PARA CONSULTA: https://stackoverflow.com/ e https://www.python.org/
Tipos de Variáveis em Python
Uma variável é um objeto, afinal tudo é um objeto em Python
int -> inteiro
string -> texto
float -> números com casas decimais (ponto flutuante)
bool ou boolean -> True ou False
Obs: Variáveis em Python não são declaradas explicitamente, mas isso não significa que você deve ficar mudando o tempo todo
Misturando Tipos de Variáveis
COMO JUNTAR TEXTO COM VARIAVEL
O str vai transformar o número em texto.
Comando Format
Fomart é uma alternativa caso não queira digitar str direto.
Então é só colocar as chaves e o ponto ao lado.
Sempre colocar .format
Fstring e Mudança de Tipos de Variáveis
Outra alternativa é o fstring
Como formatar a variável em texto, número etc.
Estrutura do if - Condições no Python
Else
Elif
Comparadores
And e Or
Exercícios de if
Caso o usuário não preencha / deixe vazio na hora de inserir o valor
Índice e Tamanho de String
Uma string para o python, é uma lista com várias informações.
Uma lista no python sempre começa no índice zero.
Ex: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
l i r a @ g m a i l . c o m
o L é o primeiro item da lista, pois a contagem sempre começa do zero.
LEN conta quantos caracteres tem no meu texto.
Para extrair uma informação de um texto use a variável dele e os [ ] com o índice dentro.
Índice Negativo e Pedaço de String
: é usado para pegar o texto, e se colocar o número, ele pega a parte do texto que você quer. Pode ser (5:) ou (:5) ou número negativos.
Métodos de String
str -> transforma número em string
in -> verifica se um texto está contido dentro do outro
operador + -> concatenar string
format e {} -> substitui valores
%s -> substitui textos
%d -> substitui números decimais
· Sinal de Mais (+) -> Serve para concatenar strings
· str() -> transforma o valor em string
· in e not -> Servem para fazer verificações em string
· len() -> Calcula o tamanho do texto (quantidade de caracteres)
· capitalize() -> Coloca a 1ª letra Maiúscula
· casefold() -> Transforma todas as letras em minúsculas (existe lower() mas o casefold é melhor normalmente)
· count() -> Quantidade de vezes que um valor aparece na string
· endswith() -> Verifica se o texto termina com um valor específico e dá como resposta True ou False
· find() -> Procura um texto dentro de outro texto e dá como resposta a posição do texto encontrado
· format() -> Formata uma string de acordo com os valores passados. Já usamos bastante ao longo do programa.
· isalnum() -> Verifica se um texto é todo feito com caracteres alfanuméricos (letras e números) -> letras com acento ou ç são considerados letras para essa função.
· isalpha() -> Verifica se um texto é todo feito de letras.
· isnumeric() -> Verifica se um texto é todo feito por números.
· replace() -> Substitui um texto por um outro texto em uma string.
· split() -> Separa uma string de acordo com um delimitador em vários textos diferentes.
· splitlines() -> separa um texto em vários textos de acordo com os "enters" do texto
· startswith() -> Verifica se a string começa com determinado texto
· strip() -> Retira caracteres indesejados dos textos. Por padrão, retira espaços "extras" no início e no final
· title() -> Coloca a 1ª letra de cada palavra em maiúscula
· upper() -> Coloca o texto todo em letra maiúscula
Formatação de números
:< Alinha o texto à esquerda (se tiver espaço na tela para isso)
:> Alinha o texto à direita (se tiver espaço na tela para isso)
:^ Alinha o texto ao centro (se tiver espaço na tela para isso)
:+ Coloca o sinal sempre na frente do número (independente se é positivo ou negativo)
:, Coloca a vírgula como separador de milhar
:_ Coloca o _ como separador de milhar
:e Formato Científico
:f Número com quantidade fixa de casas decimais
:x Formato HEX minúscula (para cores)
:X Formato HEX maiúscula (para cores)
:% Formato Percentual
Exercícios
Input é para o usuário interagir com o sistema e colocar a informação
LEN conta quantos caracteres tem no meu texto
Isnumeric verifica se as informações são numéricas
· strip() -> Retira caracteres indesejados dos textos. Por padrão, retira espaços "extras" no início e no final
· replace() -> Substitui um texto por um outro texto em uma string, está substituindo . e – por nada.
·
!= significa diferente
Find é para verificar se tem @ na informação inserida pelo usuário
Servidor é pra pegar da posição do @ pra frente, isso vai servir para verificar se tem ponto no email.
O -1 significa que não encontrou a informação no texto inserido pelo user.
Ou seja, se for != -1, então tem o @ no email.
Também se for diferente de . na variável servidor
Cortes de String
Lista / listas em python
Retirando informação da minha lista
Trocando valor da lista / informação / caractere da lista.
Neste caso, o i está sendo trocado pelo A.
Descobrindo o Índice de um item na lista
Variáveis de index recebem uma letra para representar ela.
Adicionar e Remover itens da Lista
Estrutura de Repetição For
Estrutura de Repetição For
LEN vai verificar a quantidade de informação que tenho na minha lista. Com isso, não é mais necessário por um número fixo no range do for.
i é minha variável.
Produção[i]: vai dizer em qual índice da lista meu for começar a rodar, de padrão o índice é zero... ou seja, a primeira info da lista.
FOR COM IF
Len para contar quantas infos tenho em minha lista.
For vai rodar até ler todas as informações da lista, isso graças a vendas contida no for, pq as informações da lista estão alocadas nela.
If para saber se está acima ou igual a meta.
Print(i) para me mostrar os valores acima da meta
Bmeta para receber a quantidade total de quantas vezes a meta foi batida.
Format para calcular o percentual.
Tamanho de Lista, Maior e Menor Valor
Aqui usamos o len para ver quantas informações tenho na minha lista.
Usei min e max para saber qual é o maior e o menor valor na minha lista.
Usei index para saber qual foi o produto mais vendido, com base na lista de produtos e vendas. O print do min e max mostra o maior valor(15000), esse valor representa as vendas de iphone x.
Juntar Listas e Ordenar
Usei o uma variável para receber uma lista + outra lista.
Outra opção é usar o .extend
Basicamente ele junta as duas listas também. Ou seja, ele jogou novos_produtos dentro de produtos.
Obs: Aconteceria o mesmo se fosse produtos sendo jogado na lista de novos produtos.
Aqui eu estou somando dois valores dentro da minha lista, sei que o iphonex é o índice 2 e o iphone11 é o índice 3 (lembrando que o índice começa com 0). É importante sempre colocar o nome da lista e o índice a ser usado.
Sort ordena a lista em forma alfabética, mas a ordem é de acordo com a letra maiúscula e minúscula. Na imagem o IPad ficou em primeiro pq o “i” é MAIÚSCULO, a ordem sempre vai começar com as letras maiúsculas primeiro.
Para ordenar do maior para o menor eu usei reverse = true (o false colocaria do menor para o maior).
.Join serve para colocar um separador entre as listas, no meu caso eu troquei as virgulas pelo traço.
Aqui eu usei \n para quebrar em linhas e usei – para enfeite.
Split separa as informações com o delimitador que vem nela (aqui veio a virgula), repara que no print ficou ‘apple tv’, diferente da variável produtos que está ‘apple tv..., ou seja, com as aspas eu consigo ver que ele separou cada informação.
Alterações Incrementais de Variáveis
Aqui é só uma amostra da mudança de variável, ela recebendo ela mesmo + valor. (também serve para texto. Ex: email = ‘darlan@gmail’ – email = email + ‘.com’)
EXERCICIOS DE LISTAS
1. Faturamento do Melhor e do Pior Mês do Ano
Qual foi o valor de vendas do melhor mês do Ano? E valor do pior mês do ano?
2. Continuação
Agora relacione as duas listas para printar 'O melhor mês do ano foi {} com {} vendas' eo mesmo para o pior mês do ano.
Calcule também o faturamento total do Ano e quanto que o melhor mês representou do faturamento total.
Obs: Para o faturamento total, pode usar a função sum(lista) que soma todos os itens de uma lista
3. Crie uma lista com o top 3 valores de vendas do ano (sem fazer "no olho")
Dica: o método remove retira um item da lista.
Copiar e Igualdade de Listas
Para fazer uma cópia da lista, nós usamos o método .copy (também pode ser lista = lista1[:], mas eu acho copy melhor)
Lista de Listas
Listas dentro de listas. Vendas[0][1] O [0] significa que eu estou olhando a primeira linha de venda(100,200). O [1] significa que estou pegando a segunda informação dessa linha (200). O mesmo vale para os outros.
Continuação da imagem. Vendas[2][0] significa que está olhando a terceira linha e pegando a segunda informação de produtos, que neste caso é o iphone que representa o 1.
Aqui eu estou substituindo o 200 por 50 na primeira linha e na segunda coluna que representa o iphone aqui no exercício. Substituir/substituo
Aqui eu estou adicionando um novo produto na lista produtos, usei o append para adicionar a lista. Criei uma lista com valores fictícios para o produto mac (vendasmac). Adicionei os valores em cada lista e criei uma coluna para mac. Ex: vendas[1].append(vendasmac[1]) a minha segunda linha/lista está recebendo o valor no índice 2 da lista vendasmac (400).
Exercícios listas
Sei que o linha representa a segunda linha da minha lista/ índice 1, então a qtd vendida eu sei que é 50000 e o preço unitário é 40. Fiz o total para saber quanto eu tenho sem imposto. Usei if para verificar se contém a informação ‘livro’ na minha lista de produtos(se não tiver, ele vai ignorar), ilivro para descobrir o index do livro na lista de produtos. totalantigo é para gerar o valor sem imposto (diferente do outro, esse não são valores fixos como de 5000 e 40). Produto_ecommerce para calcular o percentual de imposto %(vai ser 10% em cima do valor real). totalnovo para descobrir o novo valor contando com o imposto
Estrutura For
for i in range(n):
repetir código n vezes
· Imagine que você está construindo uma automação para enviar todo dia por e-mail um resumo da produção de uma fábrica. Construa um código que exiba a quantidade produzida de cada produto nesse "e-mail"
produtos = ['coca', 'pepsi', 'guarana', 'sprite', 'fanta']
producao = [15000, 12000, 13000, 5000, 250]
for i in range(5):
print('O produto vendido foi {} e a quantidade produzida foi de {}'.format(produtos[i], producao[i]))
For "each"
Estrutura:
O for no Python consegue percorrer uma lista e a cada "loop" retornar o valor do item.
O i está recebendo o valor de cada produto.
O l está recebendo o valor de cada letra que a variável texto recebe
for + if / For e IF
Estrutura:
for item in lista:
if condicao:
faça alguma coisa
else:
outra coisa
Digamos que a gente esteja analisando a meta de vendas de vários funcionários de uma empresa. A meta de vendas é de 1000 reais em 1 dia.
Temos uma lista com as vendas de todos os funcionários e quero calcular qual o % de pessoas que bateram a meta.
Len para contar a quantidade de informação na minha lista.
i declarado para iniciar em 0
v para receber o índice da lista de vendas, ou seja, na primeira vez que rodar, eu sei que v é 1200 e assim vai.
Verifico se o índice(v) é maior que a meta.
I += 1 para somar 1 sempre que v for maior ou igual a meta (i += é a mesma coisa que i = i + 1)
Print para exibir todos os v maior ou igual a meta.
Print para calcular o percentual de pessoas que bateram a meta.(i que é o total de pessoas que bateram a meta e qtdp que é a quantidade de pessoas no total, para isso fiz o len ali em cima) – ({:.1%} para formatar como percentual e colocar só uma casa após a virgula/ponto)
Enumerate
Estrutura:
O enumerate permite que você percorra uma lista e ao mesmo tempo tenha em uma variável o índice daquele item.
for normalmente
for item in lista:
resto do código
for i, item in enumerate(lista):
resto do código
O for enumerate pega o item da lista e também o número de posição dele.
Antes da virgula vem a variável que vai receber o número da posição do item, depois da virgula vem a variável que recebe o item da lista.
Exemplo Prático
Vamos pegar um exemplo de nível mínimo de estoque. Em uma fábrica você tem vários produtos e não pode deixar que os produtos fiquem em falta. Para isso, foi definido uma quantidade mínima de estoque que os produtos precisam ter:
Identifique quais produtos estão abaixo do nível mínimo de estoque.
O produtos[i] pega o nome do produto de acordo com o índice(a variável i que está no for) – (está i ali para pegar o índice, mas pode ser qualquer letra/texto que não esteja sendo usada/o no código ou que seja função no python)
Quando usar for i in lista? Quando houver apenas uma lista para percorrer.
Quando usar for i in range? Quando houver varias listas para percorrer.
Quando usar for i in enumerate? Quando tiver que pegar o indice.
Exercícios
Qtde_pessoas para verificar quantas pessoas tem.
Quarto = [] é a lista onde vai conter o nome das pessoas e o cpf.
For para rodar no número de pessoas que estarão no hotel (o valor será inserido pelo usuário).
Nome e cpf com input para pedir as informações.
Hospede é uma variável que cria uma lista para aquele instante do for, ela recebe o cpf e o nome digitado no momento.
Quarto.append(hospede) joga o valor na variável hospede para a lista quarto[] que está criada lá em cima.
Print está mostrando o valor contido na variável quarto = []
Pq eu não printei hospede, mas printei quarto? Simples! A lista hospede é momentânea e só armazena valor daquele for em giro, ou seja, não acumula e sempre reseta no próximo for, por isso quarto.append está ali, pq ele pega o valor de hospede do momento e coloca na lista acumulativa que é a quarto = [].
A ideia aqui é saber quem bateu a meta, mas o valores então dentro de uma lista com mais de um índice, neste caso é o índice 0 e o 1 (está 0 e 1, pois as listas começam no índice 0 [0,1]).
Basicamente um for para correr na lista de vendas e um if vendo qual valor do índice 2 teve o valor maior ou igual a meta. Um print para mostrar o nome do vendedor(índice 0) e para mostrar as vendas(índice 1).
For dentro de For
Quando temos listas dentro de listas, às vezes precisamos fazer um "for dentro de for"
for item in lista:
for item2 in lista2:
codigo aqui
Vamos pegar um exemplo de nível mínimo de estoque. Em uma fábrica você tem vários produtos e não pode deixar que os produtos fiquem em falta. Para isso, foi definido uma quantidade mínima de estoque que os produtos precisam ter:
Identifique quais fábricas tem algum produto abaixo do nível de estoque
Agora ao invés de analisar o estoque de apenas 1 fábrica, vamos analisar o estoque de várias fábricas
Um for para rodar na minha lista estoque(pois tenho 5 listas dentro de uma). Um for para ver se a quantidade é menor que o nível mínimo.
O código abaixo corrige a aparição duplicada das info no print, usa o append para colocar as informações na variável lista(fabricas_abaixo_nivel).
Exercícios
1. Calculando % de uma lista
Faremos algo parecido com "filtrar" uma lista. Mais pra frente no curso aprenderemos outras formas de fazer isso, mas com o nosso conhecimento atual já conseguimos resolver o desafio.
Digamos que a gente tenha uma lista de vendedores e ao invés de saber todos os vendedores que bateram a meta, eu quero conseguir calcular o % de vendedores que bateram a meta. Ou seja, se temos 10 vendedores e 3 bateram a meta, temos 30% dos vendedores que bateram a meta.
Vamos resolver de 2 formas:
Criando uma lista auxiliar apenas com os vendedores que bateram a meta
Fazendo o cálculo diretamente na lista que já temos.
O enunciado pediu para fazer uma lista vazia que vai receber os valores que bateram a meta, por isso criei bm = []
Um for para percorrer a lista de vendas.
Um if para ver se os valores do índice1 são maiores que a meta.
Um append para jogar na lista bm os valores de vendas que bateram a meta.
Print para exibir o valor da lista e o percentual.
Obs: É importante colocar a função LEN para contar a quantidade de itens na lista, isso vai servir para fazer cálculos com a lista, no exemplo abaixo eu calculei o percentual.
Para treinar uma estrutura parecida, crie um código para responder: quem foi o vendedor que mais vendeu?
Mv é a melhor venda e ela recebe o valor 0 inicialmente, mas será preenchido de acordo com o giro do for.
Mvd é o melhor vendedor, inicialmente recebe o valor vazio, mas será preenchido de acordo com o giro do for.
Formas de interromper um for
2 Opções:
break -> interrompe e finaliza/para/parar o for
continue -> interrompe e vai para o próximo item do for
vendas = [100, 150, 1500, 2000, 120]
o break basicamente interrompe o for após o objetivo se concluído e pula para a próxima linha que não está na estrutura do for. Aqui ele já viu que a venda é menor que a meta, então não tem pq continuar rodando os outros códigos contidos no for. Isso é muito útil quando temos um código muito grande.
Também existe o continue, se a venda for menor que a meta, ele não desce para a próxima linha, ele continua rodando a condição. No exemplo abaixo ele não pulou para a linha abaixo pois a primeira venda era 100 e a meta é 130, na segunda ele pulou para o código abaixo e printou a venda de 150 pois é maior que a meta, e foi fazendo isso para os seguintes.
Estrutura while:
Funcionamento:
Usamos o while quando queremos repetir um código de forma indeterminada até uma condição se tornar verdadeira/falsa.
A lógica é: enquanto a condição for verdadeira, o while executa o código. Assim que ela terminar de ser verdadeira, o código "sai" do while.
Diferença de while para for: no for a gente executava com um tamanho definido, no while é uma quantidade indefinida de vezes.
while condicao:
repete esse código
Exemplo1: Quando criamos automações na internet
Exemplo2: Crie um programa que funcione como o registro de vendas de uma empresa.
Nele, a pessoa deve inserir o nome do produto e o produto deve ser adicionado na lista de venda. Enquanto o usuário não encerrar o programa, significa que ele está registrando novos produtos, então o programa deve permitir e entrada de quantos produtos o usuário quiser.
Ele é muito útil para automações web. Ex: ele espera o site carregar para poder continuar executando o código.
Neste código o while vai rodar enquanto o input venda for diferente de vazio, como fica vazio? Quando o usuário pressionar enter no teclado sem digitar nada (se der espaço, ele vai continuar rodando neste código pois não fiz tratamento)
Cuidado com o while -> Loop Infinito
Sempre que for usar o comando while, lembre-se de ter certeza que o programa vai terminar em algum momento
Exemplo
Digamos que temos uma lista de vendedores e as quantidades vendidas e queremos identificar todos os vendedores que bateram a meta de 50 vendas.
O while está verificando se as vendas estão acima da meta, está printando os vendedores e as vendas. O i+= 1 serve para mudar o valor de i todas as vezes que o while rodar, com isso ele consegue percorrer toda a lista e fazer a verificação.
Exercícios
1. Input até o usuário parar
Vamos criar um sistema de vendas. Nosso programa deve registrar os produtos e as quantidades (2 inputs) e adicionar em uma lista.
O programa deve continuar rodando até o input ser vazio, ou seja, o usuário apertar enter sem digitar nenhum produto ou quantidade.
Ao final do programa, ele deve printar todos os produtos e quantidades vendidas.
Obs: Caso queira, para o print ficar mais visual, pode usar o join para cada item ser printado em uma linha. Sugestão para sua lista de produtos vendidos:
While True: vai rodar enquanto a condição for verdadeira, qual condição? A condição do if. Enquanto o produto for preenchido com infomação, então vai rodar. O if not significa que ele vai analisar se não tiver produto, ele vai pro break e sair do while, caso contrário, ele vai pular para a linha quantidade e depois para vendas e jogar a info na lista vendas. Pq coloquei o produto antes do if not? É preciso ter produto para ter quantidade, se não tiver produto, não tem pq ler quantidade.
Tuplas
Estrutura:
tupla = (valor, valor, valor, ...)
Diferença
Parece uma lista, mas é imutável., OU SEJA, NÃO É POSSIVEL ADICIONAR OU RETIRAR VALOR.
Vantagens:
Mais eficiente (em termos de performance)
Protege a base de dados (por ser imutável)
Muito usado para dados heterogêneos
Criando tuplas
Usa () ao invés de []
A tupla não permite que altere uma informação contida neal, diferente de uma lista que permitiria tal ação... por isso as tuplas são imutáveis.
For enumerate na tupla
Outro exemplo
Aplicação de Tupla - Lista de Tuplas
Estrutura:
Além de casos como o do enumerate, em que usamos uma função para transformar itens em tuplas porque isso ajuda o nosso código, temos também listas de tuplas como algo comum dentro do Python.
Exemplo:
Digamos que você está analisando as vendas do Banco de Dados de um e-commerce.
Em um determinado dia, você extraiu as vendas do Banco de Dados e elas vieram nesse formato:
Dicionários em Python
Estrutura:
dicionario = {chave: valor, chave: valor, chave: valor, chave: valor ...}
Vantagens e Desvantagens
Não devem ser usados para pegar itens em uma determinada ordem
Podem ter valores heterogêneos (vários tipos de valores dentro de um mesmo dicionário: inteiros, strings, listas, etc)
Chaves são únicas obrigatoriamente, seu tentar adicionar uma chave com o nome de uma que já existe na minha lista, ele vai apenas substituir o valor antigo pelo novo.
Mais intuitivos de trabalhar
Nos cód abaixo dei a chave para que o print pegue o valor.
Quando quero acessar uma info no dicionário, tenho que dar a chave para ter o valor.
Métodos Específicos de Dicionário
clear() -> Deleta todos os elementos do Dicionário (semelhante ao que aprendemos em listas)
copy() -> Cria uma cópia do dicionário (semelhante ao que aprendemos em listas)
fromkeys(chaves, valor_padrao) -> Cria um dicionário com as chaves e o mesmo valor padrão para todas as chaves
get(chave) -> Retorna o valor especificado pela chave (Semelhante a fazer dictionario[chave]
items() -> Retorna uma lista em que cada item é uma tupla com (chave, valor)
keys() -> Retorna uma lista com todas as chaves do dicionário
pop(chave) -> Retira o item do dicionário e retorna o valor dele para ser usado
popitem() -> Retira o último item adicionado ao dicionário
setdefault(chave, valor) -> Retorna o valor da chave passada, mas caso a chave não exista, cria no dicionário o item com a chave e valor passados.
update(dicionario) -> Adiciona o dicionário passado como parâmetro ao dicionário original
values() -> Retorna uma lista com todos os valores do dicionários
Não confie na ordem dos dicionários, use as chaves
Python Versões Antigas x Versões Novas
Dicionários eram "sem ordem". Atualmente tem ordem, mas o certo é usar as chaves
2 formas de pegar um valor:
dicionario[chave]
.get(chave)
Vamos supor que eu digite uma chave errada (ex: ipads ao invés de ipad), ao invés de dar erro, o get vai me retornar NONE, ou seja, que está vazio ou não contém a informação.
Verificar se item está no dicionário:
if
.get(chave) = None
Se tentarmos procurar as vendas de "copo" na lista de vendas tecnologia, o que acontece?
Está verificando se a chave copo e igual a vazio, ou seja, pode estar vazio ou escrito errado ai ele vai printar a linha abaixo. Caso esteja preenchido, ele vai printar o valor referente a chave copo.
Adicionar, Modificar e Remover Itens do Dicionário
Update aqui atualizou o dicionário com novas informações
Ou seja, o update pega um dicionário e junta com o outro formando um dicionário só.
Remover itens:
del dicionario[chave]
ou então
valor = dicionario.pop(chave)
mas cuidado com:
del dicionario
-> que é diferente de dicionario.clear()
O del pode ser usado para deletar uma informação da lista ou a próprialista como um todo, então devemos ter cuidado ao usar. Para deletar uma informação da lista usamos del nome da lista [índice]. Para deletar a lista, usamos del nome da lista, o código dará erro caso você tente usar a lista nos códigos abaixo pois ele entende que a lista foi deletada qual você digitou del e o nome dela.
No exemplo abaixo também usamos o clear, ele deleta todas os elementos dentro da minha lista, mas não deleta a lista., por isso ficam as chaves vazia lá em baixo.
For em Dicionário
for chave in dicionario:
faça alguma coisa
Exercícios
1. Identificando Locais de Risco
(Não conhecemos muito dos números e indicadores reais, esse é um exercício imaginário para treinarmos com um cenário mais prático)
Digamos que você está construindo um programa para identificar níveis de CO2 (gás carbônico) em determinados locais para evitar potenciais acidentes. Em cada um desses locais a sua empresa tem 5 sensores que captam o nível de CO2 do local.
Os níveis normais de CO2 são em média 350. O nível de CO2 de um local é dado pela média captada pelos 5 sensores.
Isso significa que se tivermos os 5 sensores do Rio de Janeiro marcando: 350, 400, 450, 350, 300, o nível de CO2 do Rio de Janeiro será dado por: (350 + 400 + 450 + 350 + 300) / 5 = 370.
Caso o nível seja maior do que 450, um aviso deve ser exibido pelo seu programa dizendo, por exemplo: Rio de Janeiro está com níveis altíssimos de CO2 (490), chamar equipe especializada para verificar a região.
Os resultados dos sensores são monitorados frequentemente e são dados para o sistema em forma de dicionário:
Introdução a Orientação a Objeto
Regras Gerais:
Tudo no Python é um objeto.
String é objeto
Lista é objeto
Dicionários são objetos ...
Comparação Clássica
Pense no Controle Remoto de uma Televisão.
O Controle é um objeto
Cada botão dele é um comando, um método.
Cada método faz 1 ação específica
Por trás de cada método (dentro do controle) podem acontecer milhares de coisas quando você aperta 1 botão, mas no fundo você tá cagando pra isso, só quer que o botão faça o que você mandou quando você clicar no botão.
Em termos práticos no Python
Isso significa que todos eles têm métodos específicos, ou seja, já existe programado no Python várias coisas que você consegue fazer com ele.
Exemplo: Strings
Quando no Python criaram a string, eles programaram lá em algum lugar que texto[i] vai te dar o caracter na posição i do texto
Também criaram o método texto.upper() que torna toda a string em letra maiúscula
Também criaram o método texto.casefold() que coloca tudo em letra minúscula
E assim vai para tudo que temos no Python
Em termos práticos, você já deve ter reparado que fazemos muito coisas do tipo variavel.método()
'Produto {}: {} unidades vendidas'.format(produto, quantidade)
lista.append('ABC12304')
texto.count()
...
E para onde vamos com isso agora? Qual a grande vantagem?
A vantagem é que agora vamos aprender a importar módulos novos
Então tem MUITAS, mas MUITAS coisas que já estão prontas no Python que a gente não precisa programar do zero. A gente vai simplesmente importar e usar.
E repare, quando a gente importar, o que na prática estaremos fazendo é importar 1 ou mais objetos que tem vários métodos já prontos para usarmos.
TUDO NO PYTHON É UM OBJETO.
O que são módulos e qual a importância
O modulo é um arquivo com vários códigos em python que vai te dar um objeto ou mais objetos.
Importância:
Já tem muita coisa pronta, então você não precisa criar do zero.
Se você souber usar Módulos e como usar um módulo novo, você vai conseguir fazer praticamente tudo no Python.
Estrutura Básica
import módulo
ou
import módulo as nome
o modulo deve sempre ser importado no início do meu código
Exemplo: Como pode fazer o nosso código abrir um site específico na internet?
Aqui ele abre o site na web no meu navegador padrão
Variações
#importar o módulo sem precisar usar o nome dele
from modulo import *
#importar apenas algumas partes do módulo
from modulo import funcao1, funcao2, etc.
Biblioteca time - Trabalhando com Datas no Python
Módulo time em Python
O módulo time em Python fornece uma variedade de funções para trabalhar com tempo.
time.time()
A função time() retorna o tempo atual em segundos desde a Epoch (1º de janeiro de 1970).
import time
tempo_atual_segundos = time.time()
print(f"Tempo atual: {tempo_atual_segundos} segundos desde a Epoch")
time.sleep()
A função sleep() faz o programa esperar pelo número de segundos especificado.
time.ctime()
A função ctime() converte um tempo expresso em segundos desde a epoch em uma string representando o tempo local.
time.time() vs time.localtime()
A função time() retorna o tempo atual em segundos desde a epoch. A função localtime() converte um tempo expresso em segundos desde a epoch em um objeto struct_time. Este objeto contém informações sobre o tempo local, como ano, mês, dia, hora, minuto, segundo, etc. A função localtime() usa o fuso horário local.
Outras opções de time:
Módulo time em Python
O módulo time em Python fornece uma variedade de funções para trabalhar com tempo.
time.strftime()
A função strftime() converte um objeto de tempo struct para uma string de acordo com um formato específico.
Os símbolos de formato que podem ser usados estão disponíveis na documentação oficial do Python, neste link(https://docs.python.org/3/library/time.html#time.strftime)
Por exemplo, podemos querer uma string de tempo no seguinte formato: "Dia da semana, dia do mês de mês do ano, horas:minutos:segundos". Podemos usar o seguinte código para obter o tempo formatado:
Observe que o dia e o mês apareceram em inglês. Para obter o tempo formatado em português, podemos usar o módulo locale do Python.
time.strptime()
A função strptime() analisa uma string representando um horário de acordo com um formato. O retorno é um objeto struct_time.
time.gmtime()
A função gmtime() converte um tempo expresso em segundos desde a epoch em um objeto struct_time em UTC. UTC significa Coordinated Universal Time, também conhecido como GMT (Greenwich Mean Time). Este é o fuso horário padrão em que as funções time operam.
time.mktime()
A função mktime() converte um objeto struct_time em segundos desde a epoch. Este é o inverso da função localtime(). Por exemplo, podemos converter o objeto struct_time retornado pela função localtime() em segundos desde a epoch usando a função mktime(). O resultado deve ser o mesmo que o valor retornado pela função time().
Podemos usar o método mktime para calcular a diferença entre dois tempos. Por exemplo, podemos calcular a diferença entre o tempo atual e o início do ano. O resultado será o número de segundos entre esses dois tempos. Podemos usar a função localtime() para obter o tempo atual e a função mktime() para obter o tempo em 1 de janeiro de 2023 (ano deste material).
Contagem regressiva
Um evento especial está programado para começar em 10 segundos. Crie uma contagem regressiva que começa em 10 e vai até 0, com uma pausa de um segundo entre cada número.
A diferença para o de cima, é que agora a contagem vai ser na mesma linha, ou seja, vai aparecer o 10, depois ele some e aparece o 9, etc. por isso “ \r”(é importante ter esse espaço para o número sumir por completo)
Formatação de tempo
Uma empresa quer exibir a data e a hora atual em seu site no formato "Dia da semana, dia do mês de mês do ano, horas:minutos". Crie um script Python que mostra a data e a hora atuais neste formato.
Aqui muda a linguagem para português brasil
Tempo até o próximo ano
Crie um script Python que calcula quantos dias, horas, minutos e segundos faltam até o próximo Ano Novo.
Lembrar da tupla de struct_time: https://docs.python.org/3/library/time.html#time.struct_time
Classes e Objetos
Usando módulos para ajudar a resolver desafios
Objetivo:
Muitas vezes algum módulo vai ajudar a gente a resolver um desafio que talvez até conseguíssemos resolver de outra forma.
Exemplo:
Digamos que você está analisando todas as vendas dos produtos de tecnologia de um e-commercee quer saber quais foram os 5 produtos que mais venderam (e suas respectivas quantidades de vendas) - ou seja, queremos descobrir um top 3 produtos de forma simples
Functions no Python
DEF
O que é?
As functions são blocos de código que servem 1 único propósito, fazem uma ação específica.
Estrutura Básica
def nome_funcao():
faça alguma coisa
faça outra coisa
return valor_final
DEF define uma função.
Então a função cadastrar produto vai receber os códigos abaixo. Mas qual a finalidade disso? Evita que eu digite o mesmo código várias vezes, por exemplo: No for eu só digitei a função e ele rodou normalmente sem precisar digitar dezenas de códigos.
Argumentos/Parâmetros da Função
Argumento/Parâmetros são tudo que vem dentro dos parênteses. Ex: print(“oi”) o argumento/ Parâmetro aqui é o texto “oi”. É possível passar mais de um parâmetro para o print. Ex: print(“oi”, “Mundo”, “Olá”) aqui ele vai printar todos os parâmentros/argumentos do print, A virgula separa um parâmetro do outro.
def minha_funcao(parametro1, parametro2, parametro3):
return parametro1 + parametro2 + parametro3
Return está retornando a soma das 3 variáveis.
minha_soma está sendo armazenada em soma para ser printada, defini cada argumento da minha função.
Aplicação em um Exemplo de argumento
Em verde é a lista com as informações.
Em rosa a função ALCO.
Em amarelo estou chamando a função.
image3.png
image92.png
image93.png
image94.png
image95.png
image96.png
image97.png
image98.png
image99.png
image100.png
image101.png
image4.png
image102.png
image103.png
image104.png
image105.png
image106.png
image107.png
image108.png
image109.png
image110.png
image111.png
image5.png
image112.png
image113.png
image114.png
image115.png
image116.png
image117.png
image118.png
image119.png
image120.png
image121.png
image6.png
image122.png
image123.png
image124.png
image125.png
image126.png
image127.png
image128.png
image129.png
image130.png
image131.png
image7.png
image132.png
image133.png
image134.png
image135.png
image136.png
image137.png
image138.png
image139.png
image140.png
image141.png
image8.png
image142.png
image143.png
image144.png
image145.png
image146.png
image147.png
image148.png
image149.png
image150.png
image9.png
image151.png
image152.png
image153.png
image10.png
image11.png
image12.png
image13.png
image14.png
image15.png
image16.png
image17.png
image18.png
image19.png
image20.png
image21.png
image22.png
image23.png
image24.png
image25.png
image26.png
image27.png
image28.png
image29.png
image30.png
image31.png
image32.png
image33.png
image34.png
image35.png
image36.png
image37.png
image38.png
image39.png
image40.png
image41.png
image42.png
image43.png
image44.png
image45.png
image46.png
image47.png
image48.png
image49.png
image50.png
image51.png
image52.png
image53.png
image54.png
image55.png
image56.png
image57.png
image58.png
image59.png
image60.png
image61.png
image62.png
image63.png
image64.png
image65.png
image66.png
image67.png
image68.png
image69.png
image70.png
image71.png
image1.png
image72.png
image73.png
image74.png
image75.png
image76.png
image77.png
image78.png
image79.png
image80.png
image81.png
image2.png
image82.png
image83.png
image84.png
image85.png
image86.png
image87.png
image88.png
image89.png
image90.png
image91.png