Python: Pede três números e diz o maior

"Faça um Programa que leia três números inteiros e mostre o maior deles."





Questão de Python Resolvida

Vamos armazenar os três números que o usuário digitar nas variáveis 'primeiro', 'segundo' e 'terceiro'.

O pulo do gato, nessa questão, é usar uma variável extra, que chamaremos de 'maior'. A função dessa variável é simples: armazenar o maior valor que ela achar.


Inicialmente, fazemos com que 'maior' aponte para a variável 'primeiro', estamos supondo que o número 'primeiro' é o maior:

maior = primeiro

Agora vamos fazer os testes!

Vamos comparar o primeiro número com o segundo.
Se o segundo for maior que o primeiro, a variável 'maior' agora vai receber o valor da variável 'segundo':
maior = segundo

Se não for maior, então 'maior' ainda está com o valor da variável 'primeira', que definimos no começo. Então a variável 'maior' vai ter sempre o maior valor, entre os dois primeiros números digitados, concorda?


Agora vamos testar se a variável 'terceiro' é maior que o valor 'maior'.

Se for, o novo valor de 'maior' vai ser o terceiro número:
maior = terceiro

Se não for maior que 'terceiro', ela continua com valor anterior e este é o maior de todos.

Nosso código fica:

    primeiro = int(input('Primeiro numero: '))
    segundo  = int(input('Segundo numero : '))
    terceiro = int(input('Terceiro numero: '))

    maior = primeiro

    if (segundo > maior):
        maior = segundo
    if (terceiro > maior):
        maior = terceiro

    print('Maior: ',maior)

Não se assuste se não entender de cara.
Leia, releia, pense, pense de novo, reflita, chore em posição fetal até entender.

Programar é assim mesmo. O segredo é continuar tentando entender, continuar pensando...



11 comentários:

  1. pirei com essa lógica...
    :stuck_out_tongue_winking_eye:

    ResponderExcluir
  2. Natanael M. M. Balbino24 de julho de 2019 05:47

    Caraca que lógica top!!!!! só não precisei chorar em posição fetal(kkkkk), de resto precisei ler e reler mesmo, no final minha mente explodiu de tão perfeita a ideia.

    ResponderExcluir
  3. Me ajudou demais, obrigado!! a apostila ainda está a venda ?

    ResponderExcluir
  4. Está sim, Victor. Atualizada e com mais conteúdo que o site.

    ResponderExcluir
  5. Seus safadinhos, tão fazendo o curso do Guanabara e vieram aqui colar né? kkkk

    ResponderExcluir
  6. Eu fiz desse jeito. Tá certo?

    n1 = int(input('Digite um número '))
    n2 = int(input('Digite um número '))
    n3 = int(input('Digite um número '))
    if(n1>n2 and n1>n3):
    print(f'{n1} é o maior dentre eles')
    elif(n2>n1 and n2>n3):
    print(f'{n2} é o maior dentre eles')
    elif(n3>n1 and n3>n2):
    print(f'{n3} é o maior dentre eles')
    else:
    print(f'n/d')
    print(f'FIM')

    ResponderExcluir
  7. Eu fiz desse jeito, sem usar os testes condicionais.

    num1 = int (input('digite um número:'))
    num2 = int (input('digite o segundo número:'))
    num3 = int (input('digite o terceiro número:'))

    lista = [num1, num2, num3]
    print(max(lista))

    ResponderExcluir
    Respostas
    1. Bacana a solução, mas você está usando listas (ainda não ensinamos, nessa altura do curso), e uma função dela, a max(), que internamente faz sim os testes condicionais para achar o maior elemento de uma lista.

      O objetivo do exercício é entender a lógica de se achar valores máximos (ou mínimos).

      Excluir