Mandar um café pro programador

Pode me ajudar a transformar cafeína em código?

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...



30 comentários:

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

    ResponderExcluir
  2. Natanael M. M. Balbino24 de julho de 2019 às 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
  8. Escrevi dessa forma, mas quando vi o seu código abriu mais a minha percepção.
    No primeiro 'if' não coloquei "num1>num2 and num1>num3", porque funcionou do jeito que tá. Não sei se daria problema depois.

    num1 = int(input('Digite o 1º número:'))
    num2 = int(input('Digite o 2º número:'))
    num3 = int(input('Digite o 3º número:'))

    if num1 > num2 and num3:
    print('O maior é o Nº',num1)
    elif num2 > num3:
    print('O maior é o Nº',num2)
    else:
    print('O maior é o Nº',num3)

    ResponderExcluir
  9. que lógica massa!
    depois de analisar compreendi e minha mente explodiu ksksk ajudou muito obrigado <3

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

    print('Programa que compara 3 números e declara quem é o maior!')

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

    if num1 >= num2 and num1 >= num3:
    print(f'O número {num1} é o maior!')
    elif num2 >= num1 and num2 >= num3:
    print(f'O número {num2} é o maior!')
    elif num3 >= num1 and num3 >= num2:
    print(f'O número {num3} é o maior!')

    ResponderExcluir
  11. a lógica é simplesmente fantástica, só me tira uma dúvida:
    vc usou dois if e um print, mas todo if não tem que ser acompanhado de um else ?

    ResponderExcluir
  12. Poderia corrigir minha lógica, porque buguei na sua solução:
    num1=int(input("Digite o primeiro número: "))
    num2=int(input("Digite o primeiro número: "))
    num3=int(input("Digite o primeiro número: "))

    if num1 < num2 and num2 < num3:
    print(num3)
    elif num2 < num3 and num3 < num1:
    print(num2)
    else:
    print(num1)

    ResponderExcluir
  13. Não tinha como acertar essa. Não foi ensinado um exemplo igual a esse antes.

    ResponderExcluir
  14. Pelos meus testes deu certo:

    print('O maior número')

    primeiro = int(input('Digite o primeiro número:'))
    segundo = int(input('Digite o segundo número:'))
    terceiro = int(input('Digite o terceiro número:'))

    if (primeiro == segundo and terceiro):
    print('Os três números são iguais a {}, portanto não há um número que seja maior'.format(primeiro))
    elif (primeiro > segundo) and (primeiro > terceiro):
    print('O número maior é o {}'.format(primeiro))
    elif segundo > terceiro:
    print('O número maior é o {}'.format(segundo))
    else:
    print('O número maior é o {}'.format(terceiro))

    ResponderExcluir
  15. Como seria possível mostrar o maior, o médio e o menor?

    ResponderExcluir
  16. O meu código ficou grande, muito legal ver várias outras formas. muito top!

    primeiro_numero = int(input('Digite um número: '))
    segundo_numero = int(input('Outro número: '))
    terceiro_numero = int(input('Mais um número: '))
    print()

    if primeiro_numero > segundo_numero and primeiro_numero > terceiro_numero:
    print(f'{primeiro_numero} é maior que {segundo_numero} e {terceiro_numero}')

    elif segundo_numero > primeiro_numero and segundo_numero > terceiro_numero:
    print(f'{segundo_numero} é maior que {primeiro_numero} e {terceiro_numero}')

    else:
    print(f'{terceiro_numero} é maior que {primeiro_numero} e {segundo_numero}')

    ResponderExcluir
  17. Eu fiz essa gambiarra aqui:

    n1 = int(input("Número 1: "))
    n2 = int(input("Número 2: "))
    n3 = int(input("Número 3: "))


    if n1 == n2 and n1 > n3:
    print("Os dois primeiros números são iguais!")

    if n1 == n3 and n2 > n1:
    print("Primeiro e terceiro números são iguais!")

    if n1 == n2 and n3 > n1:
    print("Os dois primeiros números são iguais! ")

    if n1 == n2 and n1 == n3:
    print("Numeros iguais")

    elif n1 > n2 and n1 > n3:
    print("O primeiro número é maior ")

    elif n2 > n1 and n2 > n3:
    print("O segundo número é maior ")

    elif n3 > n2 and n3 > n1:
    print("O terceiro número é maior ")

    ResponderExcluir
  18. primeiro = input('qual o numero?')
    segundo = input('qual o numero?')
    terceiro = input('qual o numero?')

    if primeiro > segundo:
    if primeiro > terceiro:
    print(f'o primeiro numero e o maior {primeiro}')
    elif segundo > terceiro:
    print(f'o segundo numero e o maior {segundo}')
    else:
    print(f'o terceiro numero e o maior {terceiro}')


    consegui assim ficou grande esses cod ne kkk

    ResponderExcluir
  19. primeiro = input('qual o numero?')
    segundo = input('qual o numero?')
    terceiro = input('qual o numero?')

    if primeiro > segundo:
    if primeiro > terceiro:
    print(f'o primeiro numero e o maior {primeiro}')
    elif segundo > terceiro:
    print(f'o segundo numero e o maior {segundo}')
    else:
    print(f'o terceiro numero e o maior {terceiro}')

    ResponderExcluir
  20. n1=int(input('Nota 1'))
    n2=int(input('Nota 2'))
    n3=int(input('Nota 3'))
    if n1>n2 and n1>n3:
    print(' n1:{} é o maior'.format(n1))
    elif n2>n1 and n2>n3:
    print('n2:{} é o maior '.format(n2))
    elif n3>n1 and n3>n2:
    print('n3:{} é o maior '.format(n3))
    elif n1==n2 and n1==n3 and n2==n3:
    print('número iguais')

    ResponderExcluir
  21. eu fiz da seguinte maneira :
    n1 = int(input('Digite o Primeiro numero: '))
    n2 = int(input('Digite o Segundo numero: '))
    n3 = int(input('Digite o Terçeiro numero: '))

    if (n1 > n2 < n3):
    print('O maior numero é ', n1)
    if (n1 > n2 n3):
    print('O maior numero é', n2 )
    if (n1 < n2 > n3):
    print('o menor numero é ', n1 )
    exit()

    elif (n1 < n2 < n3):
    print('O maior numero é', n3 )
    if (n1 < n2 < n3):
    print('O menor numero é', n1)
    exit()

    Esta correto?

    ResponderExcluir
  22. Eu fiz por essa solução:

    first_num = int(input('Insira o primeiro número: '))
    second_num = int(input('Informe o segundo número: '))
    third_num = int(input('Informe o terceiro número: '))

    maior_num = []

    maior_num.append(first_num)
    maior_num.append(second_num)
    maior_num.append(third_num)

    print(f'O maior número na lista é o {max(maior_num)}')

    ResponderExcluir
  23. o meu ficou feião ;-;
    num1=float(input("digite se numero"))
    num2=float(input("digite se numero"))
    num3=float(input("digite se numero"))
    if num1>num2>num3:
    print(num1,num2,num3)
    elif num1>num3>num2:
    print(num1,num3,num2)
    elif num2>num1>num3:
    print(num2,num1,num3)
    elif num2>num3>num1:
    print(num2,num3,num1)
    elif num3>num1>num2:
    print(num3,num1,num2)
    elif num3>num2>num1:
    print(num3,num2,num1)

    ResponderExcluir
  24. Eu fiz de uma forma que identifica a posição em que foi questionando e não o número em si.
    num1 = int(input('Digite 1° N: '))
    num2 = int(input('Digite 2° N: '))
    num3 = int(input('Digite 3° N: '))
    if(num1>num2 and num1>num3):
    print('O 1° é o maior.')
    elif(num2>num1 and num2>num3):
    print('O 2° é o maior.')
    elif(num3>num1 and num3>num2):
    print('O 3° é o maior.')

    ResponderExcluir
  25. n1 = int(input("digite o primeiro numero:"))
    n2 = int(input("digite o segundoo numero:"))
    n3 = int(input("digite o terceiro numero:"))

    if n1>n2 and n1>n3:
    print("n1 é o maior numero:", n1)
    elif n2>n1 and n2>n3:
    print("n2 é o maior numero ", n2)
    else:
    print("n3 é o maior numero")

    ResponderExcluir

Bora fazer evoluir o ensino da Programação no Brasil ?

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo