🎉 SEMANA DO CONSUMIDOR

Últimos dias para comprar os cursos com 50% de desconto

Ver detalhes

Postado em em 27 de fevereiro de 2025

Crie seus primeiros projetos com nosso Curso Básico de Python! Aprenda de forma fácil e gratuita e domine essa linguagem de programação do zero.

Se você sempre quis aprender programação, agora é o momento! Com o nosso curso de Python, você vai dar os primeiros passos em programação de forma simples e prática. Em 10 aulas, vamos te ensinar tudo o que você precisa saber para começar a criar seus próprios projetos.

Aula 0 – Por que Python? + Instalação e Configurações

Vamos dar início ao Curso Básico de Python para que você possa sair do zero programação e dar seus primeiros passos!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O Python é uma das linguagens de programação mais populares atualmente, reconhecida por sua simplicidade e versatilidade.

Aprender a programar é uma habilidade essencial, que pode abrir portas tanto para o mercado de trabalho quanto para projetos pessoais, ajudando você a resolver problemas, automatizar tarefas e criar soluções inovadoras.

Nesta aula, você vai entender por que o Python é a melhor escolha para quem está começando e aprenderá como instalar tanto o Python quanto o Visual Studio Code (VS Code), o editor de código que utilizaremos para escrever seus primeiros comandos.

Por que aprender programação?

A programação é uma habilidade cada vez mais valorizada no mercado de trabalho. Mesmo que você não queira seguir carreira como programador, aprender a programar traz diversos benefícios, como

  • Automação de tarefas repetitivas: Você pode criar códigos para automatizar processos do dia a dia, economizando tempo, reduzindo erros e aumentando sua produtividade.
  • Resolução de problemas: Programar permite desenvolver soluções sob medida para problemas específicos, indo além das limitações de ferramentas convencionais.
  • Ampla aplicabilidade: Desde criar pequenos utilitários para facilitar tarefas pessoais até desenvolver sistemas robustos usados em grandes empresas, a programação é uma ferramenta extremamente versátil.

O que é Python?

O Python é uma linguagem de programação projetada para ser simples, versátil e funcional. Ele pode ser executado em diferentes sistemas operacionais (Windows, macOS, Linux) sem grandes ajustes e é amplamente utilizado em áreas como:

Sua popularidade e versatilidade tornaram o Python uma escolha ideal para empresas de todos os setores, não apenas de tecnologia.

Por que escolher Python?

  1. Facilidade de aprendizado: A sintaxe do Python é intuitiva, perfeita para iniciantes.
  2. Multipropósito: Pode ser usado para diferentes finalidades, como automação, análise de dados e desenvolvimento web.
  3. Multiplataforma: Funciona igualmente bem em sistemas Windows, macOS e Linux.
  4. Mercado de trabalho: Empresas renomadas como Instagram e Globo.com utilizam Python, o que faz dessa uma habilidade valiosa.

Como Instalar o Python?

Acesse a página de download no site oficial do Python: python.org/downloads/. Clique em Download Python para baixar a versão mais recente compatível com o seu sistema operacional.

Página de download do Python

Obs.: A versão do Python pode variar, dependendo de quando você estiver vendo essa aula. Não se preocupe com isso, qualquer versão atual funcionará corretamente.

Durante a instalação, marque a opção “Add Python.exe to PATH”. Isso permitirá executar comandos Python diretamente no terminal.

Janela de instalação do Python

Clique em Install Now e conclua a instalação seguindo as instruções na tela.

IDE e Editor de Código

Com o Python instalado, você precisará de um editor de código para criar e testar seus scripts.

O recomendado para este curso é o VS Code, uma ferramenta leve, versátil e multiplataforma.

Download VS Code

Como Instalar o VS Code? – Passo a Passo:

  1. Baixe o VS Code do site oficial: code.visualstudio.com/download.
  2. Siga as instruções do instalador.

É um procedimento simples, mas se preferir, você pode acompanhar a uma aula detalhada sobre a instalação.

Criando seu Primeiro Arquivo Python

Com o VS Code instalado, o próximo passo é criar uma pasta no seu computador para organizar e salvar os códigos que iremos desenvolver. No meu caso, criei uma pasta na área de trabalho chamada Curso Python.

Depois de criar a pasta, abra o VS Code, clique em File, depois em Open Folder e selecione a pasta que acabamos de criar.

Abrindo pasta no Vs Code

No momento, ela estará vazia, mas já podemos criar um novo arquivo dentro dela. Para isso, clique no ícone de New File e nomeie o arquivo como codigo.py.

Criando um arquivo novo
Primeiro arquivo criado

Quando você cria um arquivo com a extensão .py, o Visual Studio Code reconhece automaticamente que ele é um arquivo Python.

Além disso, no canto inferior direito, o editor exibe a versão do Python instalada no seu computador.

Versão Python

Se a versão do Python não for reconhecida, tente reiniciar o VS Code. Caso o problema persista, clique no aviso da versão e selecione manualmente a instalação do Python no seu sistema.

Selecionando instalação do Python

Extensões do VS Code: Python e Dracula

Para melhorar ainda mais a experiência no VS Code, algumas extensões podem ser instaladas. Elas ajudam a identificar erros, organizar o código e tornam o processo de desenvolvimento mais produtivo.

Para instalar uma extensão, clique no ícone de extensões no menu lateral esquerdo do VS Code.

Menu de extensões

A primeira extensão que você deve instalar é a Python. Ela permite que o VS Code reconheça seu código como Python, além de otimizar o ambiente com funcionalidades como realce de sintaxe e dicas de código.

Extensão Python

A segunda extensão é o Dracula, um tema visual. Ele colore o código de forma clara e agradável, facilitando a leitura e a identificação de partes importantes do código.

Extensão Dracula

Com essas extensões instaladas, podemos retornar ao nosso projeto. Clique no ícone de Explorer no menu lateral para começar a construção do código.

ícone explorer

Conceitos Básicos em Python

Antes de começarmos a programar, é importante entender alguns conceitos básicos:

  • Comandos: São instruções que você escreve para o computador executar.
  • Funções: Blocos de código que realizam ações específicas. No Python, as funções seguem a sintaxe: nome_da_função(). Colocamos entre os parênteses os parâmetros ou informações que a função precisa para funcionar.
  • Textos e números: Textos devem ser escritos entre aspas simples ou duplas (ex.: “texto” ou ‘texto’), enquanto números podem ser escritos diretamente, sem aspas (ex.: 42, 3.14)

O primeiro comando que vamos aprender em Python é a função print(). Essa função exibe informações na tela do console, que é o terminal do seu editor de código.

O termo print significa “imprimir” em inglês, e com esse comando podemos exibir textos, números, listas e muito mais.

Por exemplo, para exibir uma mensagem, basta escrevê-la entre aspas (simples ou duplas) e colocá-la dentro dos parênteses da função print().

print("Meu primeiro programa em Python")
Primeira linha de código

Atenção! Quando estamos programando, é essencial seguir as regras de formatação e sintaxe da linguagem. Escrever o código corretamente evita erros e garante que ele funcione como esperado.

Depois de escrever o comando, você pode executá-lo clicando no ícone de Run no canto superior direito do VS Code.

Ícone run

Assim, a mensagem será exibida no terminal do editor.

Terminal do vs code

Além de textos, também é possível usar o comando print() para exibir números. Por exemplo.

print("Meu primeiro programa em Python")
print(30)
Exibindo print

Note que, ao contrário dos textos, os números não precisam ser colocados entre aspas. Eles podem ser escritos diretamente dentro dos parênteses.

Outro detalhe importante é que o Python executa os comandos na ordem em que aparecem no código, ou seja, de cima para baixo. Essa execução sequencial é um dos conceitos fundamentais na lógica de programação.

Lembre-se: a ordem em que você escreve o código faz toda a diferença no resultado final.

Retornar ao Índice do Curso

Aula 1 – Variáveis e Operações

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Nesta segunda aula do Curso Básico de Python, exploraremos dois conceitos essenciais da programação: variáveis e operações. Esses fundamentos serão a base para que você construa códigos mais completos e funcionais no futuro.

Exibindo Mais de Um Valor e Realizando Cálculos na Função Print

Para começar, crie um novo arquivo chamado variaveis.py na mesma pasta onde salvamos os arquivos da primeira aula.

Arquivo variaveis.py

Na aula anterior, aprendemos que a função print() exibe textos, números, listas e outros tipos de dados. Basta passar o valor desejado como argumento dentro dos parênteses.

Além disso, a função print() permite exibir mais de uma informação ao mesmo tempo, desde que os argumentos sejam separados por vírgulas: print(argumento1, argumento2).

Por exemplo, imagine que você precisa calcular o lucro de uma empresa, onde o faturamento foi 1000 e o custo foi de 600. Podemos exibir essas informações assim:

print("Faturamento:", 1000)
print("Custo:", 600)
Valores de Faturamento e Custo

Também é possível incluir os valores diretamente no texto:

print("Faturamento: 1000")
print("Custo: 600")
Valores de Faturamento e Custo

Ambas as abordagens geram resultados visivelmente semelhantes. No entanto, há uma diferença crucial: ao passar os números como argumentos separados, podemos utilizá-los em cálculos diretamente na função print():

print("Lucro:", 1000 - 600)
print("Lucro: 1000 - 600")
Cálculo do lucro correto. E texto apenas exibindo 1000 - 600

Observe que, no primeiro comando, o Python retornou o resultado da subtração, enquanto, no segundo exemplo, ele apenas exibiu o texto exatamente como foi escrito.

Então a melhor forma de representar essas essas três informações seria organizá-las com o texto explicativo seguido pelos valores correspondente.

print("Faturamento:”, 1000)
print("Custo:”, 600)
print("Lucro:", 1000 - 600)
Valores de Faturamento, Custo e Lucro

No entanto, essa abordagem ainda não é ideal para lidar com valores no Python, especialmente em códigos que podem exigir atualizações frequentes. Para isso, vamos aprender como utilizar variáveis de forma eficiente.

Variáveis em Python

Imagine que o faturamento da sua empresa foi de R$ 1000 para R$ 1200. Se fosse necessário atualizar esse valor manualmente em todas as linhas do código onde aparece “1000”, você teria que alterá-lo uma a uma.

Em um código curto, isso não seria um grande problema. Mas em projetos reais, onde o código costuma ser muito mais extenso e complexo, realizar essas mudanças manualmente seria trabalhoso e pouco eficiente.

Para solucionar isso, usamos variáveis. As variáveis permitem armazenar informações e valores dentro do Python de forma prática e organizada.

Além disso, elas podem ser facilmente atualizadas, o que torna seu uso indispensável em qualquer programa.

No Python, criamos variáveis atribuindo um nome significativo a elas e associando um valor usando o operador de atribuição (=). A ideia é definir as variáveis no início do código e utilizá-las sempre que necessário.

faturamento = 1000
custo = 600
lucro = faturamento - custo

print("Faturamento:", faturamento)
print("Custo:", custo)
print("Lucro:", lucro)
Valores de Faturamento, Custo e Lucro

Neste exemplo, você pode observar que as variáveis armazenam os valores do faturamento, custo e lucro da empresa.

Note que os nomes das variáveis não ficam entre aspas, pois elas não representam texto, mas sim uma espécie de “caixinha” que guarda os valores ou informações.

Outra característica importante é que, por padrão, os nomes das variáveis no Python são escritos em letras minúsculas, seguindo boas práticas de codificação. Porém, precisamos tomar cuidado e não utilizar palavras reservadas como nome das variáveis.

Dessa forma, caso precise alterar o valor do faturamento, por exemplo, basta modificar o valor inicial atribuído à variável.

faturamento = 1200
custo = 600
lucro = faturamento - custo

print("Faturamento:", faturamento)
print("Custo:", custo)
print("Lucro:", lucro)
Novo cálculo do lucro com o faturamento de 1200

Com apenas uma mudança no valor inicial de faturamento, o cálculo do lucro será atualizado automaticamente, tornando o código muito mais eficiente.

Lembre-se que a ordem em que você escreve o código influencia diretamente o resultado. Por exemplo, tentar usar uma variável antes de declará-la resultará em um erro, já que o Python executa os comandos de cima para baixo.

custo = 600
lucro = faturamento - custo

print("Faturamento:", faturamento)
print("Custo:", custo)
print("Lucro:", lucro)

faturamento = 1200
Erro de atribuição das variáveis

No exemplo acima, como a variável faturamento foi usada antes de ser definida, o código resulta em um erro. Por isso, lembre-se sempre de declarar suas variáveis antes de utilizá-las.

Variável é um conceito muito importante e eficiente que utilizaremos bastante daqui pra frente.

Alterando o Valor de uma Variável

As variáveis recebem esse nome porque elas podem ser alteradas ao longo do código, permitindo que novos valores sejam atribuídos a elas.

Vamos ver um exemplo simples. Imagine que a empresa fez novas vendas. Assim, o faturamento não será mais apenas R$ 1200, mas sim R$ 1200 + o valor das novas vendas.

faturamento = 1200
custo = 600
novas_vendas = 500

faturamento = faturamento + novas_vendas
lucro = faturamento - custo

print("Faturamento:", faturamento)
print("Custo:", custo)
print("Lucro:", lucro)

Aqui, estamos dizendo que o faturamento vai receber o valor que já estava armazenado nele, somado ao valor das novas vendas. E o melhor: sempre que utilizarmos a variável faturamento depois, ela já vai ter esse novo valor.

Isso faz com que todos os cálculos que dependem dele, como o lucro, sejam automaticamente atualizados.

Resultado do faturamento (1700), custo (600) e lucro (1100)

Boas Práticas ao Nomear Variáveis

Quando você começa a programar é importante escolher bons nomes para suas variáveis. Assim, você e outras pessoas que lerem o código no futuro terão mais facilidade para entender o que cada uma representa.

Aqui vão algumas dicas de boas práticas para criar nomes de variáveis:

  • Use nomes claros que indiquem exatamente o que a variável guarda, como faturamento ou lucro.
  • Se o nome tiver mais de uma palavra, separe-as com um underscore (_), como em margem _lucro.
  • Evite nomes muito genéricos, como a, b ou x. Eles não dizem nada sobre o que a variável representa e podem confundir quem está lendo o código.

Tipos de Variável em Python

Em Python, as variáveis podem armazenar diferentes tipos de dados. O tipo de dado que uma variável armazena vai depender do tipo de valor que você atribui a ela.

Aqui estão os tipos mais comuns de variáveis:

  • Inteiros (int): Números sem casas decimais.
  • Flutuantes (float): Números com casas decimais.
  • Strings (str): Sequências de caracteres, ou seja, textos.
  • Booleanos (bool): Valores que podem ser verdadeiro (True) ou falso (False).

Por exemplo, a variável faturamento que usamos no código até agora é uma variável do tipo inteiro (int), porque ela armazena um número inteiro, sem casas decimais.

faturamento = 1200 # tipo: int -> número inteiro

Se quisermos representar valores com casas decimais, usamos o tipo flutuante (float). Por exemplo, podemos modificar a variável custo para armazenar um valor com casas decimais:

faturamento = 1200 # tipo: int -> número inteiro
custo = 750.32 # tipo: float -> ponto flutuante

Lembre-se de que, em Python, o separador decimal é o ponto, e não a vírgula.

Além disso, temos o tipo string (str) para armazenar textos. Por exemplo, um email poderia ser armazenado assim:

email = "[email protected]" # tipo: string -> texto

Por fim, as variáveis booleanas (bool) podem armazenar apenas dois valores: True ou False. Elas são super úteis para tomar decisões no seu código, como em verificações ou condições lógicas.

teve_lucro = True # tipo: bool -> boolean

É importante notar que os valores True e False devem ser escritos com a inicial maiúscula.

Existem outros tipos de variáveis em Python, mas esses são os mais comuns e os que você mais usará no começo.

Comentários em Python

No código que vimos até agora, você pode ter notado que usei o símbolo # para adicionar algumas anotações ao lado das variáveis. Esse # indica que a linha é um comentário e não será executada pelo Python.

Comentários são muito importantes, pois ajudam a explicar o que o código está fazendo. Eles tornam o código mais legível e fácil de entender, tanto para quem está escrevendo quanto para quem está lendo o código mais tarde.

Aqui vai um exemplo simples de comentário:

# Este é um comentário
faturamento = 1000  # Variável que armazena o faturamento

print(faturamento)
Exibindo o faturamento e ignorando os comentários

Como você pode ver, a linha começando com # é apenas uma anotação e não interfere no funcionamento do código.

Isso permite que você faça anotações para lembrar o que cada parte do código está fazendo ou para ajudar outras pessoas que possam ler o código depois de você.

Operações Básicas no Python

Como vimos anteriormente no cálculo de lucro, é possível realizar operações matemáticas no Python de forma simples e direta. Essa funcionalidade é essencial para resolver problemas do dia a dia ou mesmo para desenvolver aplicações mais avançadas.

Com Python, você pode realizar todas as operações básicas utilizando valores diretamente ou variáveis previamente definidas.

Aqui estão os operadores matemáticos mais comuns no Python:

  • Adição (+)
  • Subtração (-)
  • Multiplicação (*)
  • Divisão (/)
  • Módulo (%): Resto da divisão.
  • Divisão inteira (//): Parte inteira da divisão.

A seguir, vamos explorar cada operador com exemplos práticos.

Operador de adição (+)

O operador de adição é um dos mais intuitivos e utilizado para somar valores. Ele pode ser aplicado diretamente em números ou em variáveis que armazenam valores.

faturamento = 1500
novas_vendas = 500

faturamento = faturamento + novas_vendas

print("Faturamento:", faturamento)
Exibindo o faturamento de 2000

Operador de subtração (-)

A subtração utiliza o símbolo de menos (-), como na matemática. Assim como na soma, você pode operar diretamente com valores ou variáveis.

faturamento = 2200
custo = 550.30
lucro = faturamento - custo

print("Lucro:", lucro)
Exibindo o lucro de 1649.7

Operador de multiplicação (*)

A multiplicação pode ser novidade para algumas pessoas, pois utiliza o símbolo de asterisco (*). Esse operador serve para multiplicar valores ou variáveis.

faturamento = 1000
imposto = 0.15 * faturamento

print("Imposto:", imposto)
Exibindo o imposto de 150

No exemplo acima, o imposto equivale a 15% do faturamento. Sempre que quisermos trabalhar com porcentagens em Python, devemos usar o número decimal correspondente.

Por exemplo: para calcular 15%, multiplicamos o valor por 0.15 (o equivalente a 15/100 ou 15%).

Operador de divisão (/)

O operador de divisão utiliza a barra / e serve para dividir uma informação pela outra, seja uma variável ou um valor.

faturamento = 1000
custo = 500
lucro = faturamento - custo

margem_lucro = lucro / faturamento

print("Margem de Lucro:", margem_lucro)
Exibindo a Margem de Lucro de 0.5

Neste exemplo, calculamos a margem de lucro ao dividir o valor do lucro pelo faturamento.

Operador de Mod (%)

No Python, o símbolo % não é usado para representar porcentagens, mas sim como o operador módulo. Ele serve para calcular o resto de uma divisão. Isso pode ser muito útil em diversas situações práticas.

Por exemplo, ao dividir 10 por 3, temos 3 como quociente e 1 como resto. O operador módulo nos dá exatamente esse resto:

print(10 % 3)
Exibindo o resultado de 10 % 3 que é 1

Vamos aplicar o operador módulo em um cenário do dia a dia. Imagine que temos um contrato de 310 meses e queremos saber quanto isso equivale em anos e meses.

Para calcular o tempo em anos, dividimos o número total de meses por 12. Como queremos o valor inteiro dos anos, usamos a função int() para descartar as casas decimais.

Já com o operador mod, vamos obter a quantidade de meses restantes, o resto da divisão.

anos = int(310 / 12)
meses = 310 % 12

print(anos, "anos")
print(meses, "meses")

Executando esse código, teremos que o tempo de contrato é de 25 anos e 10 meses.

Exibindo o tempo de contrato de 25 anos e 10 meses

Parte inteira da divisão (//) – Floor Division

Outro operador que complementa o módulo é a divisão inteira, representada por //. Ele retorna apenas a parte inteira do quociente, descartando o resto. Esse operador é especialmente útil em cálculos que exigem números inteiros como resultado.

Por exemplo, a divisão inteira de 10 por 3 (10 // 3) retornará apenas o número 3.

Podemos aplicar a divisão inteira para calcular a quantidade de anos do contrato diretamente, sem precisar usar a função int():

anos = 310 // 12
meses = 310 % 12

print(anos, "anos")
print(meses, "meses")

A saída será exatamente a mesma: 25 anos e 10 meses.

Exibindo o tempo de contrato de 25 anos e 10 meses

Essa abordagem é simples, direta e torna o código mais legível, especialmente em cenários onde tanto o quociente quanto o resto são necessários.

Encerramento da Aula 1

Nesta Aula 1 do nosso Curso Básico de Python, exploramos como trabalhar com variáveis, comentários e operadores matemáticos. Você aprendeu a criar variáveis, atribuir valores e realizar cálculos que podem ser aplicados em diversos contextos.

Aula 2 – Textos e Strings

Lidar com palavras e frases é uma parte essencial de muitos projetos de programação. Nesta aula vamos aprender conceitos essenciais de textos e strings em python, muito além do ‘Hello World’. Prepare-se para dar mais um upgrade nas suas habilidades em Python!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Trabalhando com Textos no Python

Quando começamos a trabalhar com sistemas ou dados, é fundamental saber lidar com textos. Isso porque informações como dados de cadastro, nomes de colunas e rótulos geralmente são dados em forma de texto.

Além disso, a saída (output) de um programa, que é o que aparece para o usuário em sistemas, também costuma ser apresentada em forma de texto.

Vamos explorar o conceito de strings com exemplos práticos.

Explorando strings

Primeiramente, crie um arquivo em seu editor de código. Nele, vamos escrever um código simples que calcula o lucro de um negócio e retorna uma mensagem de texto com o resultado.

faturamento = 1000 
custo = 600 
lucro = faturamento - custo 

print("O lucro foi de ", lucro, " e o faturamento foi de ", faturamento)

Ao executar o código, o output será:

O lucro foi de 400 e o faturamento foi de 1000. 

Essa prática de combinar strings com variáveis numéricas (como lucro e faturamento) é chamada de concatenação.

Concatenação

Um dos desafios de criar outputs que concatenam textos e outros tipos de dados é que a forma mais comum de concatenação, utilizando o sinal de +, funciona apenas com dados de um mesmo tipo: strings com strings ou números com números, por exemplo.

Usando str()

Uma forma de resolver esse problema é utilizando métodos para converter dados de um tipo para outro, como o str(), que transforma outros dados em strings.

texto = "O lucro foi de " + str(lucro) + " e o faturamento foi de " + str(faturamento)

Output
Com esse método, é importante prestar atenção aos espaços dentro das aspas, pois eles precisam ser colocados manualmente.

Usando f-strings
Uma alternativa mais prática e eficiente para concatenar variáveis dentro de strings é o uso das f-strings (o “f” vem de format).

Basta adicionar a f antes das aspas que iniciam a string e inserir as variáveis entre chaves {} dentro do texto:

texto = f"O lucro foi de {lucro} e o faturamento foi de {faturamento}."

Formatação de strings

Lower e strip
Imagine que o usuário preencha seus dados de cadastro sem seguir regras de formatação, como escrever seu e-mail com letras maiúsculas e espaços extras. Veja como você pode fazer para corrigir isso.

.lower()
O método .lower() converte todas as letras de uma string para minúsculas:

email = " [email protected] "

print(email.lower())

.strip()
Já o .strip() remove espaços extras do início e do final da string. Não esqueça que para atualizar permanentemente a variável com essas alterações é necessário reatribuir a variável:

email = " [email protected] "
email = email.lower()
email = email.strip()
print(email)

Output:

[email protected]

Upper e capitalize
Além disso, é possível colocar todas as letras em maiúsculas com .upper(). No entanto, para cadastros de nomes, o método .capitalize() é mais útil, pois coloca a primeira letra em maiúscula e o restante em minúsculas:

nome = "joão lira"

nome = nome.capitalize()

print(nome)

Output:

João Lira

Posições

Saber a posição de cada elemento em um conjunto de informações é útil para localizar ou modificar partes específicas de um texto. A seguir, vamos ver como extrair posições e manipular strings com base nelas.

Medindo strings

Para contar o número de caracteres de uma string, utilize a função len():

print(len(email))

Output:

21

Localizando posições

Para encontrar a posição de um caractere ou sequência específica em uma string, use o método .find():

posicao = email.find("@")

Obs.: Se houver mais de uma ocorrência, o método retornará a posição da primeira.

Fatiando strings (slices)

Você pode acessar intervalos específicos de uma string utilizando slices

print(email[11])       # Caractere na posição 11 

print(email[11:13])    # Da posição 11 até antes da 13 

print(email[2:])       # Do caractere 2 em diante 

print(email[:11])      # Do início até antes do 11

Replace no Python

Para substituir termos em uma string, utilize o método .replace(), semelhante ao “Ctrl+L” do Word.

novo_email = email.replace("gmail.com", "yahoo.com.br")

Por padrão, todas as ocorrências serão substituídas. No entanto, é possível especificar quantas substituições devem ser feitas passando um terceiro argumento após mais uma vírgula:

novo_email = email.replace("gmail.com", "yahoo.com.br", 1)

O código acima substitui apenas a primeira ocorrência de “gmail.com”. Para as duas primeiras, troque 1 por 2 no último parâmetro.

Formatação numérica

No Python, o ponto (.) é usado para separar casas decimais, por isso não é recomendável usar a notação 1.000.000. Em vez disso, escreva o número sem separadores ou utilize underscores para melhorar a legibilidade:

faturamento = 1_000_000

print(faturamento)

Output:

1000000

Códigos de formatação

Com f-strings, você pode adicionar formatações numéricas após :. Por exemplo, para exibir números com duas casas decimais e separação de milhares, utilize :,.2f:

texto = f"O lucro foi de R${lucro:,.2f} e o faturamento foi de R${faturamento:,.2f}"

print(texto)

Output:

O lucro foi de R$999,400.00 e o faturamento foi de R$1,000,000.00

Também é possível incluir valores percentuais:

texto = f"O lucro foi de R${lucro:,.2f}, o faturamento foi de R${faturamento:,.2f} e a margem foi de {margem:.0%}."
print(texto)

Output:

O lucro foi de R$999,400.00, o faturamento foi de R$1,000,000.00 e a margem foi de 40%.

Exercícios Práticos

Utilizando os conceitos aprendidos nesta aula e na aula anterior, vamos resolver 3 exercícios práticos que ajudarão a fixar e melhorar sua compreensão.

Primeiro Exercício

Crie uma variável nome e uma variável email. Usando os métodos aprendidos, faça o Python identificar o servidor do e-mail e o primeiro nome do usuário.

nome = "joao Paulo lira" 
email = "[email protected]"

Segundo Exercício

Crie uma mensagem personalizada no formato:


“Usuário João foi cadastrado com sucesso no e-mail [email protected].”

Siga este modelo e utilize f-strings para compor o texto.

Você pode tentar resolver sozinho primeiro e depois comparar sua solução com a proposta. Lembre-se de que o importante não é ter uma solução idêntica, mas sim que a lógica faça sentido e alcance o resultado esperado.

Soluções

Primeiro Exercício
Para descobrir o servidor do e-mail, basta encontrar a posição do caractere @ e extrair tudo que vem depois dele.

  • Use .find(“@”) para localizar a posição.
  • Depois, crie uma variável que guarde o servidor.
posicao = email.find("@") 
servidor = email[posicao+1:] 
print(servidor)

Para descobrir o primeiro nome, identifique uma fatia pela posição. Nesse caso, o primeiro nome é definido por tudo que aparece antes do primeiro espaço:

  • Use .find(” “) para localizar a posição do espaço.
  • Extraia a parte da string até essa posição.
posicao_espaco = nome.find(" ") 
primeiro_nome = nome[:posicao_espaco]

Código Completo do primeiro exercício (com extra de formatação)

# Input do usuário
nome = "joao Paulo lira" 
email = "[email protected]" 

# Descobrindo o servidor do e-mail
posicao = email.find("@") 
servidor = email[posicao+1:] 
print(servidor) 

# Descobrindo e formatando o primeiro nome
posicao_espaco = nome.find(" ") 
primeiro_nome = nome[:posicao_espaco] 
primeiro_nome = primeiro_nome.capitalize() 
print(primeiro_nome)

Segundo Exercício
Para criar uma mensagem com as informações de cadastro, usamos f-strings para inserir as variáveis no texto.

# Input do usuário
nome = "joao Paulo lira" 
email = "[email protected]"

# Criando a mensagem personalizada
mensagem = f"Usuário {primeiro_nome} foi cadastrado com sucesso no e-mail {email}." 
print(mensagem)

Encerramento da Aula 2


Nesta aula, você aprendeu as principais técnicas de manipulação de strings e textos para iniciantes em Python. Manipular palavras, frases e caracteres é essencial para diversos projetos em programação. Se quiser se aprofundar, confira nossas publicações adicionais sobre strings no Python!

Retornar ao Índice do Curso

Aula 3 – Inputs e Listas

Trabalhar com entradas de dados e organizar informações em listas é fundamental para resolver problemas do dia a dia em programação. Nesta aula, você vai descobrir como capturar inputs do usuário e estruturar dados em listas de forma prática e eficaz. Vamos continuar expandindo o seu domínio em Python!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O que são inputs?

Inputs são dados fornecidos diretamente pelo usuário ao programa. Eles são fundamentais quando queremos tornar nossos sistemas mais interativos, permitindo que o usuário insira informações que o código utilizará para gerar resultados.

Pra começar, vamos criar um arquivo chamado input.py e trabalhar com um exemplo prático. Na aula anterior, definimos o valor de faturamento diretamente no código, mas agora vamos modificar isso para que o usuário possa inserir esse valor.

Solicitando inputs ao usuário

Podemos adicionar uma mensagem para acompanhar a solicitação de input ao usuário. Fazemos isso usando um texto entre aspas dentro do parênteses após input:

faturamento = input("Preencha com o faturamento (apenas números): ")

print(faturamento)

Se o usuário preencheu com 20000, o output será:

20000

Atenção: inputs sempre são strings!

Um ponto muito importante ao lidar com inputs é que qualquer valor fornecido pelo usuário será recebido como uma string, independentemente do que ele digitar. Por isso, se você precisar realizar cálculos com esse valor, será necessário convertê-lo para outro tipo, como um número inteiro (int) ou decimal (float).

Tratando o valor dos inputs

Sabemos que se tentarmos pegar o valor 20000 dado pelo usuário e envolver ele em uma operação matemática com o nosso código, vamos receber um erro, pois é impossível realizar cálculos com strings.

Para resolver esse problema de tipo de dados, precisamos usar métodos de conversão como int() e float().

faturamento = input("Preencha com o faturamento (apenas números): ")

faturamento = float(faturamento)

custo = 600

lucro = faturamento - custo

print(lucro)

Se o usuário inserir o valor 20000, o output será:

19400

Agora imagine que o usuário decide não seguir a instrução do nosso texto do input “preencha apenas com números” e responde com algo como R$20.000,00 em vez de apenas números. Ou pior, utilize uma vírgula como separador decimal, em vez de um ponto. Nesse caso, o código geraria um erro.

Pra evitar esse problema, precisamos tratar o input do usuário antes de convertê-lo, utilizando o método .replace(). Veja o exemplo:

faturamento = faturamento.replace("R$", "").replace(",", ".")

Isso remove os “R$” (substituindo por nada) e troca vírgulas por pontos, deixando o valor pronto para ser convertido em um número.

Atenção com a soma de inputs

Outro ponto importante é a soma de valores provenientes de diferentes inputs. Vamos supor que você peça dois valores ao usuário:

vendas_dia1 = input("Vendas Dia 1: ")

vendas_dia2 = input("Vendas Dia 2: ")

Se tentarmos somar esses inputs com o sinal de + e o usuário digitar 15000 para o Dia 1 e 12000 para o Dia 2:

print(vendas_dia1 + vendas_dia2) # Output: 1500012000

O que aconteceu aí foi uma concatenação de strings, como vimos na Aula 2. Isso acontece porque o Python, ao lidar com strings, faz concatenações em vez de operações matemáticas.

A solução: conversão direta no input

Para evitar esse problema, podemos converter o input diretamente para o tipo numérico adequado (por exemplo, float) na mesma linha em que ele é solicitado. Veja como fazer isso:

vendas_dia1 = float(input("Vendas Dia 1: "))

vendas_dia2 = float(input("Vendas Dia 2: "))

total_vendas = vendas_dia1 + vendas_dia2

print(total_vendas) # Output: 27000.0

Listas

As listas no Python têm algumas semelhanças com strings, já que os elementos de uma lista podem ser acessados individualmente, assim como os caracteres em uma string. Para isso, utilizamos índices, como lista[0] ou intervalos, como lista[1:4].

As listas são armazenadas em variáveis, e seus elementos são separados por vírgulas entre colchetes. Vamos começar com um exemplo simples:

lista_vendas = [100, 50, 1000, 800, 35]

Para ver o número de itens de uma lista, assim como para o tamanho de uma string, usamos o método len():

print(len(lista_vendas))  # Output: 5

E para acessar apenas o primeiro elemento dessa lista, podemos usar o comando lista_vendas[0].

print(lista_vendas[0])  # Output: 100

Outra forma de acessar os itens de uma lista é de trás pra frente, com valores negativos. Por exemplo, o último item de uma lista é lista[-1], o penúltimo é lista[-2], e assim vai.

print(lista_vendas[-1])  # Output: 35

print(lista_vendas[-2])  # Output: 800

Para acessar uma parte da lista (slice), usamos intervalos de índices, como:

print(lista_vendas[1:4])  # Output: [50, 1000, 800]

print(lista_vendas[:2])   # Output: [100, 50]

print(lista_vendas[2:])   # Output: [1000, 800, 35]

Operações úteis com listas

Com listas numéricas, podemos realizar várias operações práticas. Vamos explorar algumas delas usando como exemplo:

lista_vendas = [100, 50, 1000, 800, 35] 

1. Soma de valores

A função sum() permite somar todos os elementos de uma lista numérica:

print(sum(lista_vendas))  # Output: 1785

2. Maior e menor valor

Para identificar o maior e o menor valor da lista, usamos as funções max() e min():

print(max(lista_vendas))  # Maior valor: 1000

print(min(lista_vendas))  # Menor valor: 35

3. Média dos valores

O Python não possui uma função nativa para calcular a média diretamente, mas podemos fazer isso dividindo o total de vendas pelo tamanho da lista. Aqui está uma maneira organizada de fazer isso:

total_de_vendas = sum(lista_vendas)

tamanho_lista = len(lista_vendas)

media_vendas = total_de_vendas / tamanho_lista

print(f"O total de vendas é {total_de_vendas}, o tamanho da lista é {tamanho_lista} e a média de vendas é {media_vendas}.")

Output:

O total de vendas é 1785, o tamanho da lista é 5 e a média de vendas é 357.

Dica: Código organizado

Guardar valores como variáveis auxiliares, como total_de_vendas e tamanho_lista, ajuda a tornar o código mais limpo e fácil de entender. Além disso, a formatação com f-strings (como f”{variável}”) permite criar mensagens dinâmicas e legíveis.

Encontrando elementos em uma lista

Podemos acessar um elemento de uma lista por sua posição, como lista_venda[1] para acessar o valor 50.

lista_vendas = [100, 50, 1000, 800, 35]

print(lista_vendas[1])  # Output: 50

Para verificar se um elemento está de fato presente em uma lista, usamos a palavra-chave in, que retorna valores True ou False.

lista_produtos = ["iphone", "ipad", "apple watch", "airpod", "macbook"]

print("airpod" in lista_produtos)  # Output: True

Já para descobrirmos qual posição um elemento ocupa em uma lista, usamos o método .index().

posicao = lista_produtos.index("airpod")

print(posicao)  # Output: 3

Agora digamos que queremos acessar airpod e todos os elementos que vêm depois dele. Pra fazer isso , usamos uma lógica de fatiamento com :, que também já vimos na aula 2:

apos_airpod = lista_produtos[posicao:]

print(apos_airpod)  # Output: ['airpod', 'macbook']

Editando itens de listas

Se quisermos modificar o primeiro valor da lista, de índice [0], aumentando em 10%, vamos atualizar a posição, multiplicando ela mesma por 1.1:

lista_precos = [5000, 7000, 3000, 1000, 10000]

lista_precos[0] = lista_precos[0] * 1.1

print(lista_precos)  # Output: [5500.0, 7000, 3000, 1000, 10000]

Removendo itens de uma lista

  1. Usando o método remove()
    Remove o item pelo valor diretamente:
lista_produtos = ["iphone", "ipad", "apple watch", "airpod", "macbook"]

lista_produtos.remove("macbook")

print(lista_produtos)  # Output: ['iphone', 'ipad', 'apple watch', 'airpod']
  1. Usando o método pop()
    Remove o item com base em sua posição e retorna o valor removido:
lista_produtos = ["iphone", "ipad", "apple watch", "airpod", "macbook"]

item_removido = lista_produtos.pop(-1)  # Remove o último item

print(f"O item {item_removido} foi removido. A lista agora é {lista_produtos}.")

# Output: O item macbook foi removido. A lista agora é ['iphone', 'ipad', 'apple watch', 'airpod'].

Diferença entre remove() e pop()

  • O método remove() é útil quando você conhece o valor que deseja remover. Ele remove diretamente o item da lista, mas não retorna o valor removido.
  • O método pop() é ideal quando você quer remover o item com base no índice e precisa armazenar ou exibir o valor removido.

Adicionando itens em uma lista

Para adicionar itens na nossa lista, usamos o método append(). Ele sempre adiciona um item ao final da lista. Como exemplo, vamos adicionar o item ‘airtag’ à nossa lista:

lista_produtos.append(“airtag”)

Outra possibilidade é juntar duas listas, imagine que além da nossa lista_produtos, temos também uma lista2_produtos:

lista2_produtos [“PC”, “airtag”, “caixa de som”]

Para pegar todos os itens das lista2_produtos e adicionar à nossa lista original, o método ideal é extend():

lista_produtos.extend(lista2_produtos)

print(lista_produtos) # Output: ["iphone", "ipad", "apple watch", "airpod", "macbook", "PC", "airtag", "caixa de som"]

Uma terceira possibilidade de adição de elementos de lista, é quando você sabe a posição específica onde quer adicionar o novo elemento. Imagine que você queira adicionar um novo produto na posição 3 da lista. Para essa situação, o método insert() é o mais útil, ele pede dois argumentos, o primeiro pede a posição e o segundo o novo item.

Esse comando vai colocar o item “airpod” na segunda posição da lista e empurrar os demais para a direita:

lista_produtos.insert(1, “airpod”)

print(lista_produtos) # Output: [‘iphone’, ‘airpod’, ‘ipad’, ‘apple watch’, ‘airpod’, ‘macbook’, ‘PC’, ‘air tag’, ‘caixa de som’]

Ordenando os itens de uma lista

O método sort(), por padrão, ordena os elementos de uma lista em ordem crescente. Se for uma lista de valores, de menor a maior; e se for uma lista de strings, em ordem alfabética crescente. Então se aplicarmos o método sort() à nossa lista de produtos, teremos o seguinte:

lista_produtos.sort()

print(lista_produtos)

output: [‘PC’, ‘airpod’, ‘airpod’, ‘apple watch’, ‘caixa de som’, ‘ipad,’ ‘iphone’, ‘macbook’]

Obs.: O Python entende que todas as letras maiúsculas, de A a Z vêm antes de todas as minúsculas, isso explica a posição do PC como primeiro item no output.

Agora vamos ver o que acontece com nossa lista de preços, com valores numéricos:

lista_precos.sort()

print(lista_precos) # Output: [1000, 3000, 5000, 7000, 10000]

Caso você queira mudar a ordem do método sort(), pode passar o parâmetro reverse=True dentro dos parênteses:

lista_precos.sort(reverse=True)

print(lista_precos) # Output: [10000, 7000, 5000, 3000, 1000]

Encerramento da Aula 3

Nesta aula, aprendemos a importância dos inputs em Python para tornar programas interativos, permitindo que o usuário forneça dados para processamento.

Vimos que os inputs são sempre armazenados como strings e precisam ser convertidos para tipos numéricos quando usados em cálculos. Para evitar erros, é essencial tratar os dados corretamente, substituindo caracteres indesejados e garantindo formatos numéricos adequados.

Além disso, exploramos listas, aprendendo a acessá-las por índices, modificar seus elementos, realizar operações matemáticas e gerenciar sua estrutura com métodos como append(), remove() e pop(). Essas técnicas são fundamentais para lidar com dados de forma eficiente e estruturada em Python.

Retornar ao Índice do Curso

Aula 4 – Condicionais e Comparações

Lidar com decisões no código é uma parte essencial da programação. Em praticamente todos os projetos, você precisará verificar condições e tomar decisões com base em diferentes cenários.

Nesta aula, vamos aprender como usar estruturas condicionais no Python, um dos pilares do controle de fluxo. Você vai conseguir usar if, else, elif, que são essenciais para programas dinâmicos e inteligentes! Vamos lá?

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O que são condicionais em Python?

Imagine que você esteja desenvolvendo um sistema de vendas e precise definir se um cliente tem direito a um desconto. Ou talvez queira criar um chatbot que responda de maneira diferente dependendo do que o usuário digita. Situações como essas situações exigem estruturas condicionais, que são formas de fazer o programa tomar decisões.

No Python, a principal estrutura condicional é o if, que pode ser combinado com else e elif para avaliar diferentes possibilidades e escolher a melhor ação. A boa notícia é que a sintaxe do Python torna esse processo simples e intuitivo.

Estrutura básica do if no Python

A estrutura condicional if segue a lógica:

  1. Se a condição for verdadeira, executamos um bloco de código.
  2. Se for falsa, podemos ignorar ou definir outra ação com else.

Veja um exemplo prático:

faturamento = 1000
custo = 600
lucro = faturamento - custo

if lucro >= 0:
    print("Lucro de", lucro)
    print("Deu lucro")
else:
    print("Prejuízo de", lucro)
    print("Deu prejuízo")
print("Acabou")

O programa acima calcula o lucro subtraindo o custo do faturamento e a passa o valor para as próximas linhas, que fazem um controle de fluxo com estruturas condicionais.

Se o lucro for maior ou igual a zero, o programa vai dizer que houve lucro.  Caso contrário, ele exibe uma mensagem de prejuízo.

No final, independentemente do resultado, ele vai dizer “Acabou”, pois esse comando está fora da estrutura if-else.

Obs.: A indentação (o tab antes da nova linha) é crucial para trabalhar com if e else, pois define a estrutura do código e a relação entre as instruções. Use ela corretamente e evite erros!

Usando if com listas

Vamos voltar a imaginar nossa loja online de eletrônicos. Agora imagine que queremos verificar se um produto já existe no catálogo antes de cadastrá-lo com input:

produtos = ["iphone", "ipad", "airpod"]

novo_produto = input("Digite o nome do produto: ")
if novo_produto in produtos:
    print("Produto já existente")
else:
    print(f"{novo_produto} cadastrado com sucesso")
    produtos.append(novo_produto)

print(produtos)

Nesse código, o programa pede que o usuário digite o nome de um novo produto. Ele verifica se o produto já existe na lista produtos. Se o produto já estiver cadastrado, ele exibe uma mensagem informando que o produto já existe. Caso contrário, o novo produto é adicionado à lista e uma mensagem de confirmação é exibida.

Essa é uma forma prática de evitar cadastros duplicados e manter a base de dados organizada.

Estrutura para múltiplas condições

Às vezes, um simples if e else não são suficientes, pois há mais de dois cenários possíveis. Para esses casos, usamos o elif, que significa “else if” (ou seja, outra possibilidade a ser verificada).

Vamos considerar um sistema que define o bônus dos funcionários com base em suas vendas:

vendas = 17000

if vendas >= 15000:
    bonus = 500
elif vendas >= 5000:
    bonus = 100
else:
    bonus = 0

print(f"Bônus do funcionário: R${bonus}")

Esse código faz o seguinte:

  1. Se as vendas forem maiores ou iguais a 15.000, o funcionário recebe R$ 500 de bônus.
  2. Se as vendas estiverem entre 5.000 e 14.999, ele recebe R$ 100 de bônus.
  3. Se as vendas forem inferiores a 5.000, ele não recebe bônus.

Essa estrutura é útil quando há mais de duas opções e precisamos testar várias condições antes de decidir o que fazer.

Verficando mais de uma condição ao mesmo tempo

Vamos ver uma maneira mais elaborada de fazer algo parecido com o exemplo anterior. Para isso, vamos combinar mais de uma condição usando os operadores and, or e not.

Vamos ver um exemplo que só concede bônus se as vendas individuais forem boas e a empresa tiver um faturamento alto:

vendas_empresa = 200_000
meta_empresa = 100_000
vendas_funcionario = 16000

if vendas_funcionario >= 15000 and vendas_empresa >= meta_empresa:
    bonus = 500
elif vendas_funcionario >= 5000 and vendas_empresa >= meta_empresa:
    bonus = 100
else:
    bonus = 0

print(f"Bônus do funcionário: R${bonus}")

Com esse código, o funcionário só recebe bônus se as vendas da empresa também atingirem a meta. Mesmo que ele tenha vendido bastante, se a empresa não for bem, o bônus pode ser reduzido ou zerado.

Encerramento da Aula 4

Agora você sabe como usar estruturas condicionais em Python, o que te permite criar programas mais dinâmicos e inteligentes. Nesta aula, aprendemos a sintaxe básica do if e como combiná-lo com else e elif. Exploramos exemplos práticos, como evitar o cadastro de produtos repetidos e calcular bônus de funcionários. Entendemos também o uso dos operadores lógicos para testar múltiplas condições ao mesmo tempo.

Retornar ao Índice do Curso

Aula 5 – Dicionários

Organizar e acessar informações de forma eficiente é essencial na programação. Em muitos projetos, você precisará armazenar dados de maneira estruturada e recuperá-los rapidamente com base em chaves específicas.

Nesta aula vamos aprender sobre dicionários no Python, uma das estruturas mais poderosas para manipulação de dados. Você entenderá como criar, acessar e modificar dicionários, além de aprender funções essenciais pra trabalhar com esse tipo de estrutura. Vamos lá?

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O que são dicionários em Python?

Imagine que você está desenvolvendo um sistema de vendas e precisa armazenar informações de clientes, como nome, e-mail e histórico de compras. Ou talvez esteja criando um chatbot e precise associar palavras-chave a respostas específicas. Nessas situações, os dicionários são extremamente úteis, pois, ao contrário das listas, que são sequências de itens individuais, os itens do dicionário são pares de chave e valor (chave: valor).

No nosso caso da loja de eletrônicos, vamos usar um dicionário para relacionar produtos com seus respectivos preços, tornando mais fácil a busca e a manipulação dessas informações.

Criando um dicionário

Sabendo um pouco como é sua estrutura, vamos criar um dicionário a partir de duas listas, uma com produtos e outra com os preços:

lista_produtos = [“ipad”, “iphone”, “airpod”]
lista_precos = [7000, 5000, 2000]
dic_produtos = {“ipad”: 7000, “iphone”: 5000, “airpod”: 2000}

Agora vamos aprender a manipular esse novo tipo de sequência de dados!

Manipulando dicionários

Acessando itens

Assim como para acessar elementos em listas utilizamos índices iniciando em [0], para os dicionários os índices são os nome das chaves. Então, para acessar o valor “7000”, por exemplo, utilizamos o seguinte comando:

print(dic_produtos[“ipad”]) # Output: 7000

Obs.: No dicionário, duas chaves não podem ter o mesmo nome! Já os valores podem se repetir sem problemas.

Adicionando e editando itens

Essa parte é parecida com a edição das listas. Você só precisa “atualizar” o elemento com o seu novo valor:

dic_produtos[“iphone”] = dic_produtos[“iphone”] * 1.1 # Output: 5500

Mas ao contrário das listas, não precisamos de um método como .append() para criar novos membros. Apenas faça referência ao item que quer criar, como se ele já existisse, atribua um valor a ele e: tchã-ran! Ele passou a existir!

dic_produtos[“macbook”] = 12000
print(dic_produtos) = {“ipad”: 7000, “iphone”: 5000, “airpod”: 2000, “macbook”: 12000}

Removendo itens

Para remover itens, podemos utilizar o método .pop(). Como nas listas, esse método vai retornar o item removido. Então, se atribuirmos uma variável ao comando pop, ela terá o valor do item removido:

item_removido = dic_produtos.pop(“macbook”)
print(dic_produtos) # Output: {“ipad”: 7000, “iphone”: 5000, “airpod”: 2000}
print(item_removido) {“macbook”: 12000}

Verificando a existência de um item

Para consultar a existência de um item no dicionário, podemos usar alguns recursos diferentes. Assim como nas listas, eles retornam valores booleanos (True ou False).

Tanto o primeiro quanto o segundo método verificam a existência de um termo nas chaves (keys) do dicionário (sim, eles fazem a mesma coisa, pois keys é o padrão). Já se você especificar .values(), ele vai buscar na sequência de valores (values).

print(“iphone” in dic_produtos)
print(“iphone” in dic_produtos.keys())
print(2000 in dic_produtos.values())

Extraindo listas de um dicionário

Vamos ver um exemplo combinando os conteúdos desta aula com os da Aula 3, sobre listas.

Como o dicionário é praticamente uma sequência de duas listas combinadas item a item, é possível extrair apenas uma delas em formato de lista. Se quisermos, por exemplo extrair toda a sequência de chaves de um dicionário e transformá-la em uma lista, usamos o comando:

produtos = list(dic_produtos.keys())
Vamos tentar fazer o mesmo com os preços:
precos = list(dic_produtos.values())

Medindo um dicionário

Assim como com listas e strings, podemos usar o método len() para contar os membros de um dicionário. Nesse caso, o número vai corresponder à quantidade de pares chave: valor.

qtde = len(dic_produtos)
print(qtde) # Output: 3

Exercício prático

Utilizando os conteúdos desta e das últimas aulas, vamos fazer um exercício para consolidar nossos conhecimentos.

Usando f-strings, tratamento de input e estruturas condicionais, crie um sistema em que o usuário digita o nome de um produto e recebe uma informação com seu preço. Utilize a seguinte lista:

dic_produtos = {“ipad”: 7000, “iphone”: 5000, “airpod”: 2000, “macbook”: 12000}

Solução

produto_buscado = input(“Digite o nome do produto:”)
produto_buscado = produto_buscado.strip()
produto_buscado = produto_buscado.lower()

if produto_buscado in dic_produtos:
              preco = dic_produtos[produto_buscado]
              print(“Produto encontrado”)
              print(f”Produto: {produto_buscado}, Preço: R${preco}”)
else:
              print(“Produto não encontrado”)

Encerramento da Aula 5

Nesta aula, exploramos os dicionários no Python, uma estrutura poderosa para armazenar e organizar dados de forma eficiente. Aprendemos a acessar itens, modificar valores, adicionar e remover elementos, além de extrair listas de chaves e valores para manipulações mais avançadas.

Para consolidar o aprendizado, finalizamos com um exercício prático, onde revisamos conceitos de strings e estruturas condicionais, aplicando tudo o que vimos de forma integrada. Agora, você tem as ferramentas necessárias para utilizar dicionários em diversos contextos e tornar seus programas mais organizados e funcionais!

Retornar ao Índice do Curso

Aula 6 – for e Estruturas de Repetição

Repetir tarefas de forma eficiente é fundamental na programação. Em muitos casos, você precisará executar um mesmo bloco de código várias vezes sem precisar reescrevê-lo manualmente.

Nesta aula, vamos aprender sobre o for, uma estrutura de repetição no Python que permite percorrer listas, intervalos numéricos e outras sequências de dados. Você entenderá como criar loops, iterar sobre diferentes tipos de estruturas e utilizar condicionais dentro do for para resolver problemas práticos. Vamos lá?

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O que é o for no Python?

O for é uma estrutura de repetição que permite executar um mesmo bloco de código diversas vezes sem precisar escrever a mesma linha repetidamente. Isso facilita a automação de tarefas e evita a repetição manual de códigos, tornando os programas mais eficientes e organizados.

Por exemplo, sem o uso do for, teríamos que escrever:

print("Aprenda Python")
print("Aprenda Python")
print("Aprenda Python")
print("Aprenda Python")
print("Aprenda Python")
print("Aprenda Python")
print("Aprenda Python")

Com o for, podemos fazer isso de maneira (bem) mais prática:

for i in range(7):
    print("Aprenda Python")

O que acontece aqui? É o que vamos descobrir nesta aula!

for com range()

No exemplo acima, o for percorreu uma lista de valores gerada pelo range(7), que vai de 0 a 6 (7 elementos no total).

A cada iteração, o valor de i muda, e o código dentro do for é executado. Assim, conseguimos repetir o print sete vezes de forma automatizada.

Obs.: O nome da variável usada no for pode ser qualquer um, não necessariamente i. Por exemplo, o seguinte código teria o mesmo efeito:

for amendoim in range(7):
    print("Aprenda Python")

O range() é muito utilizado quando sabemos exatamente quantas vezes queremos repetir uma operação. Se quisermos repetir o print dez vezes:

for i in range(10):
    print("Aprenda Python")

Aqui, o range(10) gera uma sequência de números de 0 a 9 (10 números no total). O i assume cada um desses valores sequencialmente, e o código dentro do for é executado 10 vezes.

for com listas

O for também é muito usado para percorrer listas.

Imagine que temos uma lista de preços de produtos:

lista_precos = [1500, 1000, 800, 200]

Queremos calcular um imposto de 10% sobre cada um desses valores:

taxa_imposto = 0.1
for preco in lista_precos:
    imposto = preco * taxa_imposto
    print(f"O preço do produto é {preco}, o imposto é de {imposto}")

Saída:

O preço do produto é 1500, o imposto é de 150.0
O preço do produto é 1000, o imposto é de 100.0
O preço do produto é 800, o imposto é de 80.0
O preço do produto é 200, o imposto é de 20.0

A cada iteração, preco assume um valor da lista e o imposto é calculado para esse valor.

Exemplo 1 – Cálculo de imposto com for e if

Agora vamos modificar o código para aplicar uma taxa de imposto diferenciada: produtos até R$1000 pagam 10%, enquanto produtos acima de R$1000 pagam 15%.

for preco in lista_precos:
    if preco > 1000:
        taxa = 0.15
    else:
        taxa = 0.1
    imposto = taxa * preco
    print(f"O preço do produto é {preco}, o imposto é de {imposto}")

Aqui, combinamos estruturas condicionais (if) com o for, o que nos permite aplicar regras diferentes para cada preço. Assim combinamos o conteúdo desta aula com algo que vimos anteriormente. Incrível, não é mesmo?

Exemplo 2 – Cálculo do total de imposto

Agora, queremos somar todos os impostos calculados. Para isso, utilizamos uma variável que armazena a soma e a atualizamos a cada iteração.

total_imposto = 0
for preco in lista_precos:
    if preco > 1000:
        taxa = 0.15
    else:
        taxa = 0.1
    imposto = taxa * preco
    total_imposto += imposto
    print(f"O preço do produto é {preco}, o imposto é de {imposto}")
print("Total de imposto:", total_imposto)

A variável total_imposto é iniciada em 0 e vai acumulando os valores de imposto calculados dentro do for. Essa estrutura é muito comum na programação.

Exemplo 3 – Cálculo de percentual de crescimento

Agora vamos usar for com dicionários para calcular o crescimento percentual das vendas entre dois anos.

Temos dois dicionários com as vendas dos primeiros meses de 2023 e 2024:

vendas_23 = {"jan": 15000, "fev": 10000, "mar": 5000}
vendas_24 = {"jan": 16000, "fev": 11000, "mar": 5100}

O percentual de crescimento é dado por:

crescimento = (valor_atual / valor_anterior) - 1

Agora, aplicamos isso dentro do for:

for mes in vendas_24:
    valor_23 = vendas_23[mes]
    valor_24 = vendas_24[mes]
    crescimento = (valor_24 / valor_23) - 1
    print(f"No mês de {mes}, o crescimento foi de {crescimento:.1%}")

Saída:

No mês de jan, o crescimento foi de 6.7%
No mês de fev, o crescimento foi de 10.0%
No mês de mar, o crescimento foi de 2.0%

Aqui, percorremos o dicionário vendas_24, pegamos os valores correspondentes do ano anterior, calculamos o crescimento e exibimos o resultado formatado como porcentagem.

Encerramento da Aula 6

Nesta aula, vimos como for permite repetir operações de forma eficiente, seja com range(), listas ou dicionários. Também exploramos como combinar for com if para criar lógicas mais avançadas. O for é essencial para automação e processamento de dados, tornando nossos programas mais práticos e eficientes.

Retornar ao Índice do Curso

Aula 7 – Funções e Parâmetros

Até aqui, já vimos diversos conceitos e escrevemos várias linhas de código. Agora, vamos aprender sobre funções, um dos conceitos mais importantes da programação.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O que são funções em Python?

As funções permitem encapsular um bloco de código para reutilizá-lo várias vezes sem precisar reescrever tudo. Isso torna seu código mais organizado, legível e fácil de manter.

Vamos pegar como exemplo a lista de preços:

lista_precos = [1500, 1000, 800, 2000]

Agora imagine que temos uma fórmula para calcular os impostos sobre esses valores. Porém, mais adiante, precisaremos calcular impostos para outras listas de preços dentro do mesmo código. Nesse caso, criar uma função para essa tarefa evita repetição desnecessária e facilita futuras alterações.

Sempre que houver uma tarefa que se repete mais de uma vez no seu código, vale a pena considerar transformá-la em uma função.

Como criar uma função no Python?

A estrutura básica para criar uma função no Python é a seguinte:

def nome_da_funcao(parâmetro1, parâmetro2):
    # Bloco de código da função
    return resultado
  • def é a palavra-chave que define uma função.
  • O nome da função deve ser descritivo e recomendamos seguir a convenção snake_case (letras minúsculas separadas por _).
  • Parâmetros são valores que podem ser passados para a função para personalizar sua execução (podem ser zero, um ou mais).
  • O corpo da função contém as instruções que ela executa.
  • O return é usado para devolver um valor como resultado da função.

Vamos entender isso melhor com um exemplo.

Exemplo de função com parâmetros – Calcular imposto

Vamos criar uma função para calcular impostos sobre uma lista de preços, aplicando diferentes taxas dependendo do valor:

def calcular_imposto(lista_valores):
    imposto_total = 0  # Inicializa o total de impostos
    for preco in lista_valores:
        if preco > 1000:
            taxa = 0.15
        else:
            taxa = 0.1
        imposto = preco * taxa
        imposto_total += imposto
    return imposto_total

Essa função:

  1. Recebe uma lista de valores.
  2. Percorre cada valor na lista.
  3. Aplica uma taxa de imposto: 15% para valores acima de 1000 e 10% para os demais.
  4. Calcula o imposto para cada item e soma ao total.
  5. Retorna o total de impostos calculado.

Agora, podemos aplicá-la à nossa lista de preços:

print(calcular_imposto(lista_precos))

Se tivermos outra lista com valores diferentes, não precisamos reescrever o código de cálculo:

lista2_precos = [500, 4000, 3200, 2600, 1000]
print(calcular_imposto(lista2_precos))

Armazenando o resultado em variáveis

Outra forma de trabalhar com funções com return é armazenar seus resultados em variáveis:

imposto_lista1 = calcular_imposto(lista_precos)
imposto_lista2 = calcular_imposto(lista2_precos)

print(imposto_lista1)
print(imposto_lista2)

Isso facilita a manipulação dos valores calculados.

Exemplo de função sem parâmetros – Exibir uma mensagem

Nem toda função precisa de parâmetros. Algumas simplesmente executam uma ação fixa, sem depender de variáveis externas.

Um exemplo simples é uma função que exibe uma mensagem:

confira_nossos_conteudos():
    print("Confira outras publicações incríveis sobre Python em nosso site!")

Agora, sempre que executarmos:

confira_nossos_conteudos()

Veremos a mensagem sendo exibida no console.

Chamando funções

Há diferenças entre funções que possuem ou não parâmetros e entre funções que retornam valores ou apenas executam ações.

  • Funções com return devolvem um valor. Podemos usá-las diretamente no print() ou armazenar seus resultados em variáveis.
  • Funções sem return realizam alguma ação no programa (como exibir um texto), mas não retornam valores.

Se tentarmos usar print(confira_nossos_conteudos()), veremos apenas o valor None sendo retornado pelo console. Isso acontece porque a função não retorna nada, então print() tenta exibir um valor inexistente.

Quando criar uma função?

Não há uma regra fixa, mas algumas boas práticas incluem:

  • Criar funções simples e objetivas.
  • Garantir que cada função tenha um único propósito.
  • Reutilizar código para evitar repetição.

Em projetos maiores, é comum organizar o código separando funções em arquivos distintos, tornando-o modular e mais fácil de manter.

Chamando uma função dentro de outra

Funções podem ser chamadas dentro de outras funções. No nosso exemplo de cálculo de impostos, podemos separar a definição da taxa em uma função própria:

def definir_taxa_imposto(preco):
    if preco > 1000:
        return 0.15
    else:
        return 0.1

Agora, nossa função calcular_imposto pode se tornar mais simples e modular:

def calcular_imposto(lista_valores):
    imposto_total = 0
    for preco in lista_valores:
        taxa = definir_taxa_imposto(preco)  # Chamando a outra função
        imposto = preco * taxa
        imposto_total += imposto
    return imposto_total

Vantagens dessa abordagem

  • Código mais organizado e fácil de entender.
  • Alterações são mais fáceis: Se precisarmos mudar a lógica da taxa de imposto, fazemos isso apenas na função definir_taxa_imposto(), sem mexer na função principal.

Indentação e variáveis dentro das funções

No Python, a indentação é essencial para definir blocos de código dentro das funções. Além disso, é importante entender a diferença entre:

  • Variáveis locais: criadas dentro da função, existem apenas dentro dela.
  • Variáveis globais: criadas fora de qualquer função, podem ser acessadas em todo o código.

Exemplo:

def minha_funcao():
    x = 10  # Variável local
    print(x)

minha_funcao()
print(x)  # Isso vai dar erro, pois x só existe dentro da função

Encerramento da Aula 7

Funções são fundamentais para organizar e reutilizar código em Python. Elas permitem reduzir repetição e tornar o código mais eficiente, melhorar a organização do programa e facilitar a manutenção e a modificações futuras.

Com a prática, você começará a identificar padrões no seu código que podem ser transformados em funções, tornando sua programação mais fluida e profissional.

Retornar ao Índice do Curso

Aula 8 – Tuplas e Funções de Múltiplas Respostas

Manipular conjuntos de dados imutáveis e retornar múltiplos valores em uma função são habilidades essenciais para escrever código mais eficiente e organizado.

Nesta aula, você vai aprender como utilizar tuplas para armazenar informações de forma segura e como criar funções que retornam múltiplos resultados de maneira prática. Além disso, faremos alguns exercícios para fixar melhor o conteúdo.

Vamos aprofundar ainda mais seu conhecimento em Python!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

O que são tuplas?

Tuplas são estruturas de dados muito parecidas com as listas, mas com a importante diferença de que são imutáveis. Isso significa que, depois de criadas, suas informações não podem ser alteradas, adicionadas ou removidas.

Essa característica torna as tuplas ideais para armazenar conjuntos de dados que não devem ser modificados ao longo da execução do programa, garantindo maior segurança e previsibilidade.

Em Python, as tuplas são definidas usando parênteses, como em (1, 2, 3), e podem armazenar diferentes tipos de dados, incluindo números, strings e até outras estruturas, como listas e dicionários.

Além disso, como são indexadas, é possível acessar seus elementos da mesma forma como fazemos com as listas.

O uso de tuplas é especialmente útil quando queremos retornar múltiplos valores de uma função ou quando precisamos garantir que determinados dados permaneçam constantes no código.

Como funcionam as tuplas

O fato de as tuplas não poderem ser modificadas faz com que sejam ideais para armazenar informações que devem permanecer constantes ao longo da execução do programa.

Essa imutabilidade garante maior segurança e previsibilidade no código, evitando alterações acidentais nos dados.

Um dos usos mais comuns das tuplas é no retorno de múltiplos valores por uma função. Em Python, quando uma função retorna mais de um valor, na verdade, ela está retornando uma tupla. Isso permite que diferentes dados sejam agrupados de forma organizada sem a necessidade de criar estruturas mais complexas.

Além disso, as tuplas são frequentemente utilizadas para representar conjuntos fixos de informações, como coordenadas, datas ou configurações. Um exemplo clássico é a definição da resolução de uma tela, que pode ser armazenada em uma tupla da seguinte forma:

tela = (1920, 1080)

Nesse caso, os valores representam a largura e a altura da tela em pixels. Como esses dados não precisam ser alterados durante a execução do programa, armazená-los em uma tupla é uma escolha eficiente e segura.

Aplicação das tuplas em funções

As tuplas são especialmente úteis quando precisamos retornar múltiplos valores de uma função. Imagine que estamos implementando um sistema de cálculo de bônus para funcionários, onde existem dois tipos de bônus:

  • Bônus 1: R$2,00 por venda realizada.
  • Bônus 2: 1% do valor total das vendas.

Podemos criar uma função chamada calcular_bonus, que recebe uma lista de valores de vendas e retorna os dois tipos de bônus. Veja o código abaixo:

def calcular_bonus(lista_vendas):
    bonus1 = len(lista_vendas) * 2
    bonus2 = sum(lista_vendas) * 0.01
    return bonus1, bonus2  # Retornamos múltiplos valores como uma tupla

Agora, suponha que nossa lista de vendas seja:

vendas = [100, 250, 400, 100]
resultado = calcular_bonus(vendas)
print(resultado)  # Saída: (8, 8.5)

Observe que a saída é uma tupla contendo os dois valores de bônus. Como as tuplas são imutáveis, não podemos modificar resultado diretamente, mas podemos fazer unpacking para atribuir os valores a variáveis separadas.

Unpacking de tuplas

O desempacotamento (unpacking) permite extrair os valores da tupla diretamente para variáveis individuais. Em vez de acessar os elementos manualmente com índices, como bonus1 = resultado[0] e bonus2 = resultado[1], podemos fazer:

bonus1, bonus2 = calcular_bonus(vendas)
print(bonus1)  # Saída: 8
print(bonus2)  # Saída: 8.5

Dessa forma, o primeiro valor retornado pela função é atribuído à variável bonus1, e o segundo, à variável bonus2.

O desempacotamento também pode ser usado em estruturas como loops. Suponha que temos uma lista de resoluções de tela e queremos processá-las separadamente:

lista_telas = [(1920, 1080), (2560, 1440), (3840, 2160)]

for largura, altura in lista_telas:
    print(f"Largura: {largura}, Altura: {altura}")

Aqui, o próprio for faz o unpacking da tupla, atribuindo automaticamente os valores de largura e altura a variáveis separadas a cada iteração.

Isso mostra que o desempacotamento pode ser aplicado em diversas situações, tornando o código mais legível e eficiente.

Com isso, aprendemos que as tuplas são estruturas úteis para armazenar dados imutáveis e retornar múltiplos valores em funções. Além disso, o desempacotamento facilita a extração de informações de forma prática e intuitiva.

Exercícios Práticos

Para consolidar os conhecimentos sobre tuplas e estruturação de dados, vamos resolver alguns exercícios práticos.

Considere que temos um dicionário com as vendas de cada vendedor.

vendas = {
    "André": [1000, 500, 300, 5000, 1500, 80, 3000],
    "Andressa": [1500, 9000, 300, 150, 1500, 120, 130, 55, 500, 8500],
    "Alan": [800, 100],
    "Ana": [800, 900, 950, 1200, 1600, 130, 50, 50, 50, 50, 65, 60, 70, 70, 70, 200, 180, 100, 120, 110, 130, 140]
}

Com base nesses dados, calcule.

  1. O bônus de cada funcionário.
  2. O total de bônus 1 pago aos funcionários.
  3. O total de bônus 2 pago aos funcionários.

Solução

Para cada vendedor, precisamos calcular bônus 1 e bônus 2 separadamente.

É importante garantir que o bônus 1 não seja somado ao bônus 2 imediatamente, pois precisamos realizar a soma total separadamente.

# Função para calcular os bônus de um vendedor
def calcular_bonus(lista_vendas):
    bonus1 = sum(lista_vendas) * 0.05  # Exemplo: 5% do total de vendas
    bonus2 = len(lista_vendas) * 10    # Exemplo: R$10 por venda realizada
    return bonus1, bonus2

# Inicializando as variáveis de totalização
total_bonus1 = 0
total_bonus2 = 0

# Calculando os bônus para cada vendedor
for vendedor in vendas:
    bonus1, bonus2 = calcular_bonus(vendas[vendedor])
    print(f"Vendedor: {vendedor}. Bônus 1: {bonus1:.2f}. Bônus 2: {bonus2:.2f}")
    total_bonus1 += bonus1
    total_bonus2 += bonus2

# Exibindo os totais
print("\nTotal de Bônus 1:", total_bonus1)
print("Total de Bônus 2:", total_bonus2)
print("Total de Bônus Geral:", total_bonus1 + total_bonus2)

Encerramento da Aula 8

Nesta aula, aprendemos a utilizar tuplas para retornar múltiplos valores de uma função, aplicando esse conceito para calcular bônus individuais e totais em um conjunto de vendas.

Os exercícios mostraram como manipular dicionários e listas de forma estruturada, além de reforçar a importância de organizar os cálculos corretamente.

Com esse conhecimento, agora podemos resolver problemas mais complexos envolvendo dados estruturados e cálculos dinâmicos!

Retornar ao Índice do Curso

Aula 9 – Módulos e Bibliotecas

Nesta aula final do curso de Python, vamos aprender sobre módulos e bibliotecas. Veremos como importar bibliotecas no Python e entenderemos seu funcionamento por meio de dois exemplos muito utilizados: os e requests.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Módulos e Bibliotecas

Python possui diversos módulos e bibliotecas que facilitam o desenvolvimento de programas. Como a linguagem é open source, muitos desenvolvedores contribuem criando bibliotecas que resolvem problemas comuns e otimizam tarefas.

Se você já viu minicursos sobre automação, desenvolvimento de sites ou criação de jogos, provavelmente percebeu que cada um envolve uma biblioteca específica para aquela finalidade.

Como funcionam os módulos e bibliotecas?

Para utilizar um módulo ou biblioteca no Python, primeiro precisamos importá-lo usando a palavra-chave import.

Biblioteca os

Uma das bibliotecas mais famosas do Python é os, que permite a manipulação de arquivos e diretórios no sistema operacional.

Para utilizá-la, basta importar no início do código:

import os

Uma das funções mais utilizadas dessa biblioteca é os.getcwd(), que retorna o diretório atual do programa.

diretorio_atual = os.getcwd()
print(diretorio_atual) # Output: G:\Meu Drive\Trabalho\Hashtag\Textos\Curso Python\Aula Bibliotecas

Outra função útil é os.listdir(), que lista os arquivos dentro de um diretório.

pasta atual com uma pasta chamada arquivos e dois arquivos paralelos chamados aula 9 - modulos e bibliotecas, e arquivo listdir.py

Se quisermos ver os arquivos da pasta atual, podemos executar:

lista_arquivos = os.listdir()
print(lista_arquivos) # Output: ['arquivos', 'aula 9 - modulos e bibliotecas.py', 'listdir.py']

Se quisermos listar os arquivos dentro de uma pasta específica, passamos o nome da pasta como argumento:

os.listdir("arquivos")

Exemplo prático

Imagine que temos uma pasta com arquivos de texto (.txt) de 2022 e 2023 e queremos organizá-los movendo cada arquivo para sua respectiva pasta de ano. Podemos fazer isso com um pequeno script:

lista_arquivos = os.listdir("arquivos/22")
for nome_arquivo in lista_arquivos:
    if "txt" in nome_arquivo:
        if "22" in nome_arquivo:
            os.rename(f"arquivos/{nome_arquivo}", f"arquivos/22/{nome_arquivo}")
        elif "23" in nome_arquivo:
            os.rename(f"arquivos/{nome_arquivo}", f"arquivos/23/{nome_arquivo}")

Explicação do código acima:

  1. Listamos os arquivos dentro da pasta “arquivos” usando os.listdir(“arquivos”).
  2. Percorremos a lista de arquivos com um for.
  3. Verificamos se o arquivo é um .txt.
  4. Se for um arquivo de 2022, movemos para a pasta correspondente.
  5. Se for um arquivo de 2023, movemos para a outra pasta.
  6. O comando os.rename(origem, destino) muda o local do arquivo.

Agora que já aprendemos sobre os, vamos para outra biblioteca muito útil.

Biblioteca Requests

Diferente de os, a biblioteca requests não vem instalada por padrão no Python. Para utilizá-la, primeiro precisamos instalá-la executando no terminal:

pip install requests

A biblioteca requests é utilizada para fazer requisições HTTP e se comunicar com APIs externas.

Exemplo prático: Consultando uma API de cotações

Vamos usar a API AwesomeAPI, que fornece cotações de moedas em tempo real.

Se você ainda não sabe o que é uma API, descubra com nosso post sobre APIs e WebAPIs.

import requests
link = "https://economia.awesomeapi.com.br/last/USD-BRL,EUR-BRL,BTC-BRL"
resposta = requests.get(link)
print(resposta)

Se a requisição for bem-sucedida, o código retornará 200, indicando sucesso.

O que é JSON?

Os dados retornados pela API vêm no formato JSON, que é muito parecido com um dicionário Python. Para converter a resposta da API em um dicionário, usamos o método .json():

dic_resposta = resposta.json()

print(dic_resposta)

A saída será algo assim:

{
  "USDBRL": {
    "code": "USD",
    "codein": "BRL",
    "name": "Dólar Americano/Real Brasileiro",
    "high": "6.0432",
    "low": "6.0322",
    "bid": "6.0361"
  },
  "EURBRL": {
    "code": "EUR",
    "codein": "BRL",
    "name": "Euro/Real Brasileiro",
    "high": "6.2228",
    "low": "6.2151",
    "bid": "6.2112"
  },
  "BTCBRL": {
    "code": "BTC",
    "codein": "BRL",
    "name": "Bitcoin/Real Brasileiro",
    "high": "587240",
    "low": "554034",
    "bid": "561313"
  }
}

Agora que temos os dados, podemos processá-los. E vamos usar algo que já aprendemos.

Percorrendo os dados com um loop

Para exibir a cotação atual de cada moeda, percorremos o dicionário retornado pela API:

for moeda in dic_resposta:
    dic_conversao_moeda = dic_resposta[moeda]
    valor_moeda = dic_conversao_moeda["bid"]
    print(moeda, valor_moeda)

No código acima, percorremos o dicionário retornado pela API com um for. Pegamos os detalhes de cada moeda usando dic_resposta[moeda]. Extraímos o valor da cotação acessando a chave “bid” e exibimos a moeda e seu valor na tela.

Saída esperada:

USDBRL 6.0361 
EURBRL 6.2112 
BTCBRL 561313

Encerramento da Aula 9

Veja como utilizamos for, que já conhecíamos, para manipular os dados da API. Cada novo desafio reutiliza os conceitos aprendidos no curso.

Aqui, aprendemos duas bibliotecas essenciais:
os para manipular arquivos e diretórios.
requests para acessar dados de APIs.

Com poucas linhas de código, conseguimos acessar cotações de moedas em tempo real!

Se precisarmos lidar com outro tipo de dado, podemos ter certeza de que haverá uma biblioteca Python para nos ajudar.

Conclusão do Curso Básico de Python

Parabéns por chegar até aqui! Você percorreu um ótimo caminho, aprendendo os fundamentos do Python e desenvolvendo habilidades essenciais para a programação.

Começamos configurando o ambiente de desenvolvimento e explorando conceitos como variáveis, operações matemáticas e manipulação de strings. Depois, avançamos para listas, dicionários, tuplas, condicionais e estruturas de repetição, além do uso de funções para organizar o código.

Também praticamos bastante com exercícios ao longo do curso, reforçando cada conceito na prática. Finalizamos com bibliotecas e módulos, como os e requests, que expandem as capacidades do Python.

Este curso foi apenas o começo! Para evoluir, continue praticando, criando projetos e explorando novas bibliotecas. Aqui na Hashtag, seguimos produzindo conteúdos para ajudar você a impressionar, transformando conhecimento em oportunidades.

Nos vemos nos próximos cursos!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos

w background3jpg 1

Redator de conteúdo na Hashtag Treinamentos. Produzo textos didáticos sobre tecnologia, buscando informar e engajar o público de forma acessível e descomplicada.