2
respostas

Exercício 1

Olá!
Nao existe numero inteiro entre numeros iguais tampouco entre numeros em sequencia.
Os numeros em sequencia nao estao contemplados no programa da resolucao.
Eu tentei incluir uma estrutura no programa, que imprime essa informacao. Testei com os numeros 2 e 3 e nao imprimiu nada.
Nao consigo encontrar o erro.
Alguem poderia ajudar por favor?
Obrigada.

"Escreva um programa que peça dois números inteiros e imprima todos os números inteiros entre eles."

num1 = int(input('digite um numero: '))
num2 = int(input('digite um numero: '))

if num1 < num2 :
  for numeros in range(num1 + 1, num2) :
    print(numeros)

elif num1 > num2 :
  for numeros in range(num2 + 1, num1) :
    print(numeros)

elif num1 == num2 + 1 or num2 == num1 + 1 :
  print('nao ha numeros inteiros entre os numeros escolhidos')

elif num1 == num2 - 1 or num2 == num1 - 1 :
  print('nao ha numeros inteiros entre os numeros escolhidos')

else:
  print('os numeros sao iguais')
2 respostas

Olá, Rayanna! Como vai?

Reparei que você quis exibir uma mensagem caso não exista números inteiros no intervalo passado pelo usuário.

Testei o seu código e realmente não funcionou para os casos em que num1 == num2 + 1 or num2 == num1 + 1 .

Consegui resolver colocando essa condição como uma última verificação, dessa forma:

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

if num1 < num2:
  for numeros in range(num1 + 1, num2):
    print(numeros)

elif num1 > num2:
  for numeros in range(num2 + 1, num1):
    print(numeros)

else:
  print('Os números são iguais.')

if num1 == (num2 + 1) or num2 == (num1 + 1):
  print('Não há números inteiros entre os números escolhidos.')

Resultados:

Digite um número: 2
Digite um número: 3
Não há números inteiros entre os números escolhidos.
Digite um número: 3
Digite um número: 2
Não há números inteiros entre os números escolhidos.

Repare que não é necessário uma segunda verificação como você fez em num1 == num2 - 1 or num2 == num1 - 1, também usei o parênteses para melhorar a legibilidade na comparação.

E o seguinte, por que eu decidi colocar o trecho:

if num1 == (num2 + 1) or num2 == (num1 + 1):
  print('Não há números inteiros entre os números escolhidos.')

Justamente no final?

Porque se alguma condição num1 < num2 ou num1 > num2 for verdadeira, o código não iria partir para as próximas condições. Logo, um elif no meio do bloco de condições não seria lido. Por isso eu verifico todas as outras condições, para só depois realizar essa última comparação.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Obrigada, Daniel!