Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

4
respostas

Desafio - Exercícios de 1 a 9

Olá pessoal,

Segue primeira parte dos exercícios de 1 a 9.

1 Escreva um programa que peça à pessoa usuária para fornecer dois números e exibir o número maior.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
2 Escreva um programa que solicite o percentual de crescimento de produção de uma empresa e informe se houve um crescimento (porcentagem positiva) ou decrescimento (porcentagem negativa).

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 Escreva um programa que determine se uma letra fornecida pela pessoa usuária é uma vogal ou consoante.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4 Escreva um programa que leia valores médios de preços de um modelo de carro por 3 anos consecutivos e exiba o valor mais alto e mais baixo entre esses três anos.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

5 Escreva um programa que pergunte sobre o preço de três produtos e indique qual é o produto mais barato para comprar.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

6 Escreva um programa que leia três números e os exiba em ordem decrescente.
Importante - Sei que tem formas mais simples e diretas para apresentar mesmo resultado, mas fiz a que podia usar mais o que aprendemos nessas aulas.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

7 Escreva um programa que pergunte em qual turno a pessoa usuária estuda ("manhã", "tarde" ou "noite") e exiba a mensagem "Bom Dia!", "Boa Tarde!", "Boa Noite!", ou "Valor Inválido!", conforme o caso.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

8 Escreva um programa que peça um número inteiro à pessoa usuária e determine se ele é par ou ímpar. Dica: Você pode utilizar o operador módulo %
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

9 Escreva um programa que peça um número à pessoa usuária e informe se ele é inteiro ou decimal.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obrigada!

4 respostas

Olá, Vanessa! Tudo bem?

Parabéns pela dedicação e por compartilhar a sua "Hora da Prática"! Como Especialista de Processos Sênior, você sabe melhor do que ninguém que a base de um processo robusto é a repetição e a consolidação dos fundamentos. Seus exercícios mostram que você dominou as estruturas condicionais (if, elif, else) e os operadores lógicos, que são os "tomadores de decisão" de qualquer algoritmo.

Gostaria de destacar alguns pontos excelentes na sua resolução e dar umas dicas de "Python Pro" para o seu dia a dia:


Destaques da sua Resolução

  • Validação de Strings (Exercício 7): Muito bom o uso do .lower() na entrada do turno. Isso evita que o programa dê "Valor Inválido" só porque o usuário digitou "Manhã" com a primeira letra maiúscula.
  • Lógica de Ordenação (Exercício 6): Você mencionou que sabe que existem formas mais simples (como a função sorted()), mas fazer "na mão" com if/elif aninhados é o melhor exercício para treinar o raciocínio lógico. Você construiu uma verdadeira árvore de decisão!
  • Operador Módulo (Exercício 8): O uso do % 2 == 0 é a forma mais eficiente e performática de checar paridade em computação.

Dicas para Refinar seus Processos (Pythonic Way)

Como você gosta de aplicar o que aprendeu, deixo duas sugestões para seus próximos códigos:

1. Operadores de Comparação em Cadeia (Exercício 4 e 5)
No Python, você pode simplificar expressões como valor1 < valor2 and valor1 < valor3.
Em vez disso, você pode escrever: if valor_produto_1 < valor_produto_2 and valor_produto_1 < valor_produto_3:.
Dica: Para encontrar o maior ou menor de forma rápida, o Python tem as funções max() e min().
Exemplo: mais_barato = min(prod1, prod2, prod3)

2. Verificação de Inteiro (Exercício 9)
Sua lógica if numero_simples == int(numero_simples) é muito criativa! Outra forma técnica de fazer isso é usando o método .is_integer() que existe em variáveis do tipo float:

if numero_simples.is_integer():
    print("É INTEIRO")

Vanessa, continue com esse foco! A transição de Especialista de Processos para o uso de Python vai te dar um poder de automação e análise de dados incrível.

Espero que possa ter lhe ajudado!

Uma dúvida: No exercício 3 (vogal ou consoante), você considerou tratar o caso de o usuário digitar um número ou um caractere especial, ou o foco foi puramente na lógica de letras?

Olá, Vanessa! Tudo bem?

Parabéns pela dedicação e por compartilhar a sua "Hora da Prática"! Como Especialista de Processos Sênior, você sabe melhor do que ninguém que a base de um processo robusto é a repetição e a consolidação dos fundamentos. Seus exercícios mostram que você dominou as estruturas condicionais (if, elif, else) e os operadores lógicos, que são os "tomadores de decisão" de qualquer algoritmo.

Gostaria de destacar alguns pontos excelentes na sua resolução e dar umas dicas de "Python Pro" para o seu dia a dia:


Destaques da sua Resolução

  • Validação de Strings (Exercício 7): Muito bom o uso do .lower() na entrada do turno. Isso evita que o programa dê "Valor Inválido" só porque o usuário digitou "Manhã" com a primeira letra maiúscula.
  • Lógica de Ordenação (Exercício 6): Você mencionou que sabe que existem formas mais simples (como a função sorted()), mas fazer "na mão" com if/elif aninhados é o melhor exercício para treinar o raciocínio lógico. Você construiu uma verdadeira árvore de decisão!
  • Operador Módulo (Exercício 8): O uso do % 2 == 0 é a forma mais eficiente e performática de checar paridade em computação.

Dicas para Refinar seus Processos (Pythonic Way)

Como você gosta de aplicar o que aprendeu, deixo duas sugestões para seus próximos códigos:

1. Operadores de Comparação em Cadeia (Exercício 4 e 5)
No Python, você pode simplificar expressões como valor1 < valor2 and valor1 < valor3.
Em vez disso, você pode escrever: if valor_produto_1 < valor_produto_2 and valor_produto_1 < valor_produto_3:.
Dica: Para encontrar o maior ou menor de forma rápida, o Python tem as funções max() e min().
Exemplo: mais_barato = min(prod1, prod2, prod3)

2. Verificação de Inteiro (Exercício 9)
Sua lógica if numero_simples == int(numero_simples) é muito criativa! Outra forma técnica de fazer isso é usando o método .is_integer() que existe em variáveis do tipo float:

if numero_simples.is_integer():
    print("É INTEIRO")

Vanessa, continue com esse foco! A transição de Especialista de Processos para o uso de Python vai te dar um poder de automação e análise de dados incrível.

Espero que possa ter lhe ajudado!

Uma dúvida: No exercício 3 (vogal ou consoante), você considerou tratar o caso de o usuário digitar um número ou um caractere especial, ou o foco foi puramente na lógica de letras?

Olá Evandro,

Tudo ótimo!

Obrigada pelo feedback muito completo e construtivo.
Isso ajuda muito no aprendizado.

Gostei muito das dicas referente aos exercícios 4, 5 e 9.

Na validação do exercício 7 eu lembrei de uma situação que passei em um sistema e que somente tentando digitar tudo minúsculo pude perceber que tinaha alguma regra para tal. Dai lembrei do .lower e por isso apliquei para ver como era a funcionalidade na prática.
No caso no sistema, eu pedi uma melhoria para que tivesse algum pop up informando o user para digitar tudo minúsculo.

Sobre o exercício 3, eu pensei somente na lógica das letras, mas achei uma boa sua pergunta, como seria se tivesse que considerar númerou e/ou caractere especial?

Obrigada!

Olá, Vanessa! Como vai?

Que bacana ver que a sua bagagem como Especialista de Processos Sênior te deu esse estalo de ligar os estudos de Python com problemas reais que você já vivenciou em sistemas (como o caso do .lower()). Essa capacidade de antecipar problemas do usuário final (user experience) é o que define uma ótima desenvolvedora.

Sobre a sua pergunta do Exercício 3: "Como faríamos se tivéssemos que validar se a pessoa digitou um número ou caractere especial em vez de uma letra?"

No mundo do desenvolvimento, chamamos isso de higienização ou validação de dados. Tratar entradas inesperadas garante que o algoritmo não tome decisões erradas. Para fazer isso em Python, a forma mais limpa é utilizar os métodos nativos de checagem de texto (strings).

Vamos expandir o seu código adicionando uma árvore de decisão para blindar o seu programa.


O Fluxo Lógico de Validação

Antes de checar se é vogal ou consoante, o algoritmo precisa fazer três perguntas em ordem:

  1. O usuário digitou mais de uma letra? (Ex: "casa")
  2. O que foi digitado é um número? (Ex: "5")
  3. O que foi digitado é uma letra do alfabeto? (Ex: se for "@", não é letra).

Resolução com Validação Completa

Veja como o seu código do Exercício 3 ficaria robusto e profissional aplicando essas validações:

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

# 1. Validação: Checa se o usuário digitou mais de um caractere ou nada
if len(letra) != 1:
    print('Entrada inválida! Por favor, digite apenas uma única letra.')

# 2. Validação: Checa se é um número
elif letra.isdigit():
    print('Entrada inválida! Você digitou um número, não uma letra.')

# 3. Validação: Checa se é uma letra do alfabeto (elimina caracteres especiais como @, $, #)
elif not letra.isalpha():
    print('Entrada inválida! Você digitou um caractere especial.')

# 4. Processo Principal: Se passou por todos os filtros, agora sim testamos a letra
else:
    if letra in vogais:
        print('É uma vogal!')
    else:
        print('Não é uma vogal e sim uma consoante!')

Entendendo os novos métodos de processo:

  • .strip(): Remove espaços em branco acidentais que o usuário possa ter digitado antes ou depois da letra (evita que " a " seja lido como três caracteres).
  • len(letra) != 1: A função len() mede o tamanho do texto. Se for diferente de 1, o usuário tentou trapacear o sistema enviando um texto longo ou apenas apertou Enter sem digitar nada.
  • .isdigit(): Retorna True se o texto for composto puramente por números.
  • .isalpha(): Retorna True se o texto for composto puramente por letras do alfabeto. Ao usar if not letra.isalpha(), estamos capturando tudo o que não for letra (os caracteres especiais).

Montar esse tipo de validação em camadas é exatamente como desenhar um fluxograma de processo com desvios de conformidade em uma empresa!

O que achou dessa estrutura? Consegue visualizar como esses métodos ajudam a guiar o usuário pelo "caminho feliz" do sistema?