Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions modulo-01/paulo/ex01.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
print("Olá, Mundo!")
print("Paulo")
print("Python: simples, poderoso e elegante.")
4 changes: 4 additions & 0 deletions modulo-01/paulo/ex02.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import sys

print(f"Versão do Python: {sys.version}")
print(f"Sistema Operacional: {sys.platform}")
5 changes: 5 additions & 0 deletions modulo-01/paulo/ex03.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import this

# Abaixo do import, adicione um comentário explicando com suas palavras um dos princípios que mais fez sentido para você.
# "Simples é melhor que complexo."
# Esse princípio é muito importante porque um código simples é mais fácil de entender, manter e corrigir do que um código desnecessariamente complexo.
20 changes: 20 additions & 0 deletions modulo-01/paulo/ex04.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
"""
Este script inicializa os dados de um funcionário e os exibe no console.
Ele demonstra a criação de variáveis de diferentes tipos (string, int, float e bool)
e o uso da função print para saída de dados.
"""

# Variável que armazena o nome da pessoa (tipo string)
nome = "Ana Lima"

# Variável que armazena a idade da pessoa (tipo inteiro)
idade = 29

# Variável que armazena o salário da pessoa (tipo float)
salario = 4500.00

# Variável que armazena o status de atividade da pessoa (tipo booleano)
ativo = True

# Imprime os valores das variáveis na tela, separados por espaço
print(nome, idade, salario, ativo)
11 changes: 11 additions & 0 deletions modulo-01/paulo/ex05.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Print("Bem-vindo ao curso de Python") # Erro 1: A função correta é 'print' com 'p' minúsculo
print("Bem-vindo ao curso de Python")

# nome = "Carlos # Erro 2: Faltou fechar as aspas duplas na string
nome = "Carlos"

# print("Aluno: " + nome) # Correto
print("Aluno: " + nome)

# print(Curso de Python) # Erro 3: O texto precisa estar entre aspas para ser reconhecido como string
print("Curso de Python")
13 changes: 13 additions & 0 deletions modulo-01/paulo/ex06.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
ano_atual = 2025
temperatura_celsius = 28.5
cidade = "São Paulo"
chovendo = False
previsao = None
vazia = ""

print(f"{ano_atual} → {type(ano_atual)}")
print(f"{temperatura_celsius} → {type(temperatura_celsius)}")
print(f"{cidade} → {type(cidade)}")
print(f"{chovendo} → {type(chovendo)}")
print(f"{previsao} → {type(previsao)}")
print(f"'{vazia}' → {type(vazia)}")
6 changes: 6 additions & 0 deletions modulo-01/paulo/ex07.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
largura = 12.5
comprimento = 30.0

area = largura * comprimento

print(f"Área do terreno: {area:.1f} m²")
8 changes: 8 additions & 0 deletions modulo-01/paulo/ex08.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
celsius = 36.5

fahrenheit = (celsius * 9/5) + 32
kelvin = celsius + 273.15

print(f"Temperatura em Celsius: {celsius:.1f}°C")
print(f"Temperatura em Fahrenheit: {fahrenheit:.1f}°F")
print(f"Temperatura em Kelvin: {kelvin:.2f}K")
9 changes: 9 additions & 0 deletions modulo-01/paulo/ex09.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import datetime

nome = input("Digite seu nome: ")
idade = int(input("Digite sua idade: "))

ano_atual = datetime.datetime.now().year
ano_nascimento = ano_atual - idade

print(f"Olá, {nome}! Você tem {idade} anos e nasceu por volta de {ano_nascimento}.")
8 changes: 8 additions & 0 deletions modulo-01/paulo/ex10.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
capacidade_caminhao = 850
peso_caixa = 32

caixas_completas = capacidade_caminhao // peso_caixa
peso_restante = capacidade_caminhao % peso_caixa

print(f"Cabem {caixas_completas} caixas completas no caminhão.")
print(f"O peso restante que não completa uma caixa é de {peso_restante} kg.")
15 changes: 15 additions & 0 deletions modulo-01/paulo/ex11.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
nome = "Mariana Souza"
cargo = "Analista de Dados"
salario = 7850.50
anos = 3

salario_formatado = f"{salario:,.2f}".replace(",", "_").replace(".", ",").replace("_", ".")

print("=============================")
print(" FICHA DO FUNCIONÁRIO ")
print("=============================")
print(f"Nome : {nome}")
print(f"Cargo : {cargo}")
print(f"Salário: R$ {salario_formatado}")
print(f"Tempo : {anos} ano(s) de empresa")
print("=============================")
6 changes: 6 additions & 0 deletions modulo-01/paulo/ex12.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
peso = float(input("Digite o seu peso (kg): "))
altura = float(input("Digite a sua altura (m): "))

imc = peso / (altura ** 2)

print(f"O seu IMC é de {imc:.2f}.")
8 changes: 8 additions & 0 deletions modulo-01/paulo/ex13.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
numero1 = 150
numero2 = 80

print(f"O primeiro número é maior que o segundo? {numero1 > numero2}")
print(f"Os dois são iguais? {numero1 == numero2}")
print(f"Ambos são positivos? {numero1 > 0 and numero2 > 0}")
print(f"Pelo menos um é maior que 100? {numero1 > 100 or numero2 > 100}")
print(f"O primeiro é diferente de zero? {numero1 != 0}")
15 changes: 15 additions & 0 deletions modulo-01/paulo/ex14.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Forma 1: Com variável auxiliar
a = 10
b = 20

aux = a
a = b
b = aux
print("Forma 1:", a, b)

# Forma 2: Método idiomático do Python (desempacotamento)
a = 10
b = 20

a, b = b, a
print("Forma 2:", a, b)
7 changes: 7 additions & 0 deletions modulo-01/paulo/ex15.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
valor_compra = float(input("Digite o valor da compra (R$): "))

desconto = valor_compra * 0.10
valor_final = valor_compra - desconto

print(f"Desconto de 10%: R$ {desconto:.2f}")
print(f"Valor final a pagar: R$ {valor_final:.2f}")
8 changes: 8 additions & 0 deletions modulo-01/paulo/ex16.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import math

x1, y1 = 3, 4
x2, y2 = 7, 1

distancia = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)

print(f"A distância entre os pontos é: {distancia:.4f}")
16 changes: 16 additions & 0 deletions modulo-01/paulo/ex17.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
descricao = input("Descrição do produto: ")
qtd = int(input("Quantidade: "))
preco = float(input("Preço unitário: "))

subtotal = qtd * preco
imposto = subtotal * 0.12
total = subtotal + imposto

print("\n===== NOTA FISCAL =====")
print(f"Produto : {descricao}")
print(f"Quantidade: {qtd} unidade(s)")
print(f"Preço Unit: R$ {preco:.2f}")
print(f"Subtotal : R$ {subtotal:.2f}")
print(f"Imposto : R$ {imposto:.2f}")
print(f"Total : R$ {total:.2f}")
print("=======================")
15 changes: 15 additions & 0 deletions modulo-01/paulo/ex18.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
metros = float(input("Digite uma distância em metros: "))

km = metros / 1000
cm = metros * 100
mm = metros * 1000
polegadas = metros * 39.3701
pes = metros * 3.28084

print(f"{'Metros':<15} | {metros:>10.2f}")
print("-" * 30)
print(f"{'Quilômetros':<15} | {km:>10.4f}")
print(f"{'Centímetros':<15} | {cm:>10.2f}")
print(f"{'Milímetros':<15} | {mm:>10.2f}")
print(f"{'Polegadas':<15} | {polegadas:>10.2f}")
print(f"{'Pés':<15} | {pes:>10.2f}")
11 changes: 11 additions & 0 deletions modulo-01/paulo/ex19.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
email_bruto = " joao.silva@EMPRESA.com.br "

email_limpo = email_bruto.strip().lower()

partes = email_limpo.split('@')
usuario = partes[0]
dominio = partes[1]

print(f"E-mail limpo: {email_limpo}")
print(f"Usuário: {usuario}")
print(f"Domínio: {dominio}")
12 changes: 12 additions & 0 deletions modulo-01/paulo/ex20.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
capital = float(input("Capital inicial: "))
taxa = float(input("Taxa de juros ao mês (%): "))
meses = int(input("Período em meses: "))

montante = capital * (1 + (taxa / 100) * meses)
juros_totais = montante - capital

print(f"\nCapital : R$ {capital:.2f}")
print(f"Taxa : {taxa:.2f}% ao mês")
print(f"Período : {meses} meses")
print(f"Juros : R$ {juros_totais:.2f}")
print(f"Montante : R$ {montante:.2f}")
19 changes: 19 additions & 0 deletions modulo-01/paulo/ex21.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
def saudacao(nome):
"""
Retorna uma mensagem de boas-vindas personalizada.

Args:
nome (str): Nome da pessoa a ser saudada.

Returns:
str: String com a mensagem de boas-vindas.

Example:
>>> saudacao("Ana")
'Olá, Ana! Seja bem-vinda ao curso.'
"""
return f"Olá, {nome}! Seja bem-vinda ao curso."

print(saudacao("Maria"))
print(saudacao("João"))
print(saudacao("Carlos"))
8 changes: 8 additions & 0 deletions modulo-01/paulo/ex22.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
def calcular_area(largura: float, altura: float) -> float:
return largura * altura

def formatar_nome(nome: str, sobrenome: str) -> str:
return f"{nome} {sobrenome}".title()

def eh_maior_de_idade(idade: int) -> bool:
return idade >= 18
19 changes: 19 additions & 0 deletions modulo-01/paulo/ex23.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import json

aluno = {
"nome": "Pedro Henrique",
"idade": 22,
"curso": "Full Stack",
"ativo": True,
"notas": [8.5, 9.0, 7.5]
}

json_str = json.dumps(aluno, indent=2)
print("JSON string:")
print(json_str)

aluno_lido = json.loads(json_str)
media = sum(aluno_lido["notas"]) / len(aluno_lido["notas"])

print(f"\nNome: {aluno_lido['nome']}")
print(f"Média das notas: {media:.2f}")
23 changes: 23 additions & 0 deletions modulo-01/paulo/ex24.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
from typing import Tuple

def converter_moeda(valor_reais: float) -> Tuple[float, float]:
"""
Converte um valor em reais para dólar e euro.

Args:
valor_reais (float): O valor em reais (BRL) a ser convertido.

Returns:
Tuple[float, float]: Uma tupla contendo o valor em dólares (USD) e em euros (EUR).

Example:
>>> converter_moeda(100.0)
(19.41747572815534, 17.92114695340502)
"""
cotacao_usd = 5.15
cotacao_eur = 5.58

usd = valor_reais / cotacao_usd
eur = valor_reais / cotacao_eur

return usd, eur
25 changes: 25 additions & 0 deletions modulo-01/paulo/ex25.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import json

produto = {
"id": 101,
"nome": "Teclado Mecânico",
"preco": 350.00,
"estoque": 25,
"disponivel": True,
"categorias": ["Periféricos", "Informática", "Gamer"]
}

# Salva em produto.json
with open("produto.json", "w", encoding="utf-8") as f:
json.dump(produto, f, indent=4, ensure_ascii=False)

# Lê de produto.json
with open("produto.json", "r", encoding="utf-8") as f:
produto_lido = json.load(f)

print("ID:", produto_lido["id"])
print("Nome:", produto_lido["nome"])
print("Preço:", produto_lido["preco"])
print("Estoque:", produto_lido["estoque"])
print("Disponível:", produto_lido["disponivel"])
print("Categorias:", ", ".join(produto_lido["categorias"]))
25 changes: 25 additions & 0 deletions modulo-01/paulo/ex26.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from typing import Optional, Union, Dict, Any

def buscar_usuario(id_usuario: int, nome: Union[str, None] = None) -> Optional[Dict[str, Any]]:
"""
Busca os dados de um usuário pelo ID e nome.

Args:
id_usuario (int): O ID do usuário. Se for negativo, a função retorna None.
nome (Union[str, None], opcional): O nome do usuário. Padrão é None.

Returns:
Optional[Dict[str, Any]]: Um dicionário com os dados do usuário se o ID for válido,
ou None caso o ID seja negativo.
"""
if id_usuario < 0:
return None

return {
"id": id_usuario,
"nome": nome,
"status": "ativo"
}

print("ID Positivo:", buscar_usuario(1, "Ana"))
print("ID Negativo:", buscar_usuario(-5, "Carlos"))
24 changes: 24 additions & 0 deletions modulo-01/paulo/ex27.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import json

funcionarios = [
{"nome": "Carlos", "cargo": "Desenvolvedor", "salario": 5000.00, "departamento": "TI"},
{"nome": "Ana", "cargo": "Gerente", "salario": 8500.00, "departamento": "TI"},
{"nome": "João", "cargo": "Suporte", "salario": 3200.00, "departamento": "Operações"}
]

with open("funcionarios.json", "w", encoding="utf-8") as f:
json.dump(funcionarios, f, indent=4, ensure_ascii=False)

with open("funcionarios.json", "r", encoding="utf-8") as f:
dados_lidos = json.load(f)

print(f"{'NOME':<15} | {'CARGO':<15} | {'DEPARTAMENTO':<15} | {'SALÁRIO':<10}")
print("-" * 65)
soma_salarios = 0
for func in dados_lidos:
soma_salarios += func['salario']
print(f"{func['nome']:<15} | {func['cargo']:<15} | {func['departamento']:<15} | R$ {func['salario']:>8.2f}")

print("-" * 65)
media_salario = soma_salarios / len(dados_lidos)
print(f"Salário Médio da equipe: R$ {media_salario:.2f}")
25 changes: 25 additions & 0 deletions modulo-01/paulo/ex28.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
def calcular_juros_compostos(capital: float, taxa: float, periodo: int) -> float:
"""
Calcula o montante final usando juros compostos.

Args:
capital (float): O valor do capital inicial.
taxa (float): A taxa de juros (em porcentagem).
periodo (int): O número de períodos de tempo.

Returns:
float: O montante final após a aplicação dos juros compostos.

Raises:
ValueError: Se o capital ou a taxa forem negativos.

Example:
>>> calcular_juros_compostos(1000.0, 5.0, 12)
1795.85632602213
"""
if capital < 0 or taxa < 0:
raise ValueError("Capital e taxa não podem ser negativos.")

return capital * (1 + taxa / 100) ** periodo

print(calcular_juros_compostos(1000.0, 5.0, 12))
Loading