Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Dsafio: Hora da Pratica Condicionais parte 1

#Q1

num1 = int(input('Digite um número: '))
num2 = int(input('Digite outro número: '))

if num1 > num2:
print(f'O número {num1} é maior que o número {num2}')
else:
print(f'O número {num2} é maior que o número {num1}')

#Q2

percentual_crescimento = float(input('Digite o percentual de crescimento: '))

if percentual_crescimento > 0:
print(f'Houve um crescimento de {percentual_crescimento}%')
else:
print(f'Houve um decrescimento de {percentual_crescimento}')

#Q3

vogais = ['a', 'e', 'i', 'o', 'u']
letra = input('Digite uma letra: ')

if letra.lower() in vogais:
print(f'A letra {letra} é uma vogal')
else:
print(f'A letra {letra} é uma consoante')

#Q4

precos_medios = []

for ano in range(3):
preco_medio = float(input(f'Digite o preço médio do carro no ano {ano + 1}: '))
precos_medios.append(preco_medio)

print(f'O preço médio mais alto foi de {max(precos_medios)} e o preço médio mais baixo foi de {min(precos_medios)}')

#fazer a versão acima usando estrutura condicionais

precos_medios = []

for ano in range(3):
preco_medio = float(input(f'Digite o preço médio do carro no ano {ano + 1}: '))
precos_medios.append(preco_medio)

if ano == 0:
preco_mais_alto = preco_medio
preco_mais_baixo = preco_medio
else:
if preco_medio > preco_mais_alto:
preco_mais_alto = preco_medio

if preco_medio < preco_mais_baixo:
  preco_mais_baixo = preco_medio

print(f'O preço médio mais alto foi de {preco_mais_alto} e o preço médio mais baixo foi de {preco_mais_baixo}')

#Q5

preco_produtos = []

for produto in range(3):
preco_produto = float(input(f'Digite o preço do produto {produto + 1}: '))
preco_produtos.append(preco_produto)

if produto == 0:
preco_mais_barato = preco_produto
else:
if preco_produto < preco_mais_barato:
preco_mais_barato = preco_produto

print(f'O produto mais barato custa {preco_mais_barato:.2f}')

#Q6

lista_numeros = []

for numero in range(3):
numero = int(input(f'Digite o número {numero + 1}: '))
lista_numeros.append(numero)

lista_numeros.sort(reverse=True)

for numero in lista_numeros:
print(numero)

#Q7

turno = input('Digite em qual turno você estuda ("manhã", "tarde" ou "noite"): ')

if turno.lower() == 'manhã':
print('Bom Dia!')
elif turno.lower() == 'tarde':
print('Boa Tarde!')
elif turno.lower() == 'noite':
print('Boa Noite!')
else:
print("Valor inválido!")

#Q8

numero = int(input('Digite um número inteiro: '))

if numero % 2 == 0:
print(f'O número {numero} é par')
else:
print(f'O número {numero} é ímpar')

#Q9

numero = float(input('Digite um número: '))

if numero % 1 == 0:
print(f'O número {numero} é inteiro')
else:
print(f'O número {numero} é decimal')

numero = float(input('Digite um número: '))

if numero.is_integer():
print(f'O número {numero} é inteiro')
else:
print(f'O número {numero} é decimal')

2 respostas
solução!

Olá, Marcelo! Como vai?

Seus códigos para o desafio de Estruturas Condicionais estão excelentes! Você demonstrou uma ótima capacidade de resolver o mesmo problema de diferentes formas, como no caso do uso de funções nativas (max, min) comparadas à lógica manual com if/else.

Aqui estão os pontos de destaque na sua resolução:

1. Evolução da Lógica (Q4 e Q5)

É muito interessante ver como você construiu a lógica para encontrar o maior e o menor valor sem depender apenas de funções prontas. Inicializar as variáveis preco_mais_alto e preco_mais_baixo com o primeiro valor lido (if ano == 0) é a boa prática padrão para evitar erros quando todos os números inseridos são negativos ou muito altos.

2. Manipulação de Strings (Q3 e Q7)

O uso do método .lower() em letra.lower() e turno.lower() é fundamental. Isso torna seu programa mais "inteligente", pois ele aceita tanto "Manhã" quanto "manhã" ou "MANHÃ" como entradas válidas.


Dicas de Ouro para Refinar seu Código

  • Identação (Q1): Notei que no seu post a linha do print logo abaixo do if e do else parece estar sem o recuo (espaços à esquerda). Lembre-se que no Python a identação é obrigatória para o código funcionar.
  • Aprimorando a Q2: No seu código, se o percentual for exatamente 0, ele cairá no else e dirá que houve um "decrescimento de 0". Você poderia usar um elif para tratar o caso neutro:
    if percentual_crescimento > 0:
        print(f'Crescimento de {percentual_crescimento}%')
    elif percentual_crescimento < 0:
        print(f'Decrescimento de {percentual_crescimento}%')
    else:
        print('Estabilidade (0%)')
    
  • O método .is_integer() (Q9): Sensacional você ter trazido essa alternativa! O método .is_integer() é muito mais legível e específico do que usar o operador de resto (% 1).

Resumo Técnico dos Operadores Utilizados:

OperadorUtilidadeExemplo no seu código
inVerificar se um item está em uma listaif letra.lower() in vogais
%Resto da divisão (verificar par/ímpar)if numero % 2 == 0
==Comparação de igualdadeif turno.lower() == 'manhã'
:.2fFormatação de casas decimaisf'{preco_mais_barato:.2f}'

Parabéns pela dedicação e por compartilhar as duas versões dos seus raciocínios. Continue assim!

Espero que possa ter lhe ajudado!

ótima dica Evandro, essa da condição default, valeu demais.