Programação em Python 3: Dado dois números inteiros x e y, sua tarefa é calcular o valor absoluto da subtração entre esses números. Formato de entrada: A entrada é composta por dois inteiros x e y (0 < x, y < 10⁹). Formato de saída: Você deve imprimir o valor absoluto da subtração dos dois inteiros da entrada. Lembre-se da quebra de linha ao final da saída.
Soluções para a tarefa
Não fica claro se "x" e "y" devem estar o intervalo (0 , 10⁹) ou se apenas x deve ser maior que 0 enquanto que y deve ser menor que 10⁹.
Minha resolução atende a segunda possibilidade.
Os comentários do programa se encontram abaixo do código.
--------------------------------------------------------------------------------------------------
while True:
x=int(input('Digite o valor inteiro de x (maior que 0): '))
if x>0:
break
print('\033[031mO valor de "x" deve ser maior que 0 !!\033[m\n')
while True:
y=int(input('\nDigite o valor inteiro de x (menor que 10^9): '))
if y<pow(10,9):
break
print('\033[031mO valor de "y" deve ser menor que 10^9 !!\33[m')
print(f'\nO valor absoluto da subtração entre x e y vale {abs(x-y)}\n')
--------------------------------------------------------------------------------------------------
Comentários:
--> O código utiliza laços while infinitos para garantir que os números digitados pelo usuário estejam dentro dos intervalos propostos.
Assim, o programa só segue quando um valor válido seja digitado, ou seja, lemos o dado, e verificamos com um condicional (if), caso o dado seja valido, saímos do loop (break).
--> Por valor estético, quando o dado não está no intervalo devido, mostramos ao usuário uma mensagem com cor diferente (vermelha) informando-o.
--> Depois de ler os valores de "x" e "y", mostramos ao usuário (print) o valor da subtração dos números em modulo utilizando a função abs().
Caso queira prevenir esta exceção, podemos alterar o código para:
..x=input('Digite o valor inteiro de x (maior que 0): ')
..try:
....x=int(x)
..except:
....print(f'\033[031mERRO! \"{x}\" não é um numero inteiro\033[m')
..else:
....if x>0:
......break
....else:
......print('\033[031mO valor de "x" deve ser maior que 0 !!\033[m\n')
break
^
SyntaxError: 'break' outside loop
File "/HuxleyCode.py", line 2, in
x=input('Digite o valor inteiro de x (maior que 0): ')
EOFError: EOF when reading a line
Perceba que a linha em questão (2) pede para ser digitada um string que possa ser convertida para inteiro, em outras palavras, está pedindo um numero inteiro.