Crie um programa em Python que peça ao usuário que digite um número inteiro, positivo, maior que zero e imprima todos os números no intervalo de 0 até o número digitado pelo usuário. Validar o número digitado pelo usuário, ou seja, enquanto o usuário digitar um número que não atenda a condição de ser inteiro, positivo e maior do zero, solicitar que o usuário digite novamente. Abaixo segue um exemplo em vídeo de como deve funcionar o programa.
tudo que eu preciso saber é que conta eu tenho que usar pra detectar se o número não se enquadra em uma das condições
Soluções para a tarefa
Há diferentes possibilidades para solucionar esse "problema", ou seja, a forma que apresento abaixo não é única ou, necessariamente, a melhor opção.
Obs.: Os pontos que precedem as linhas não fazem parte do programa e não devem ser considerados, estão aí para garantir a indentação do código apenas.
while True:
.....x=str(input('Digite um numero inteiro positivo e maior que 0: '))
.....if x.isnumeric():
..........x = int(x)
..........if x>0:
...............break
.....print(f'"{x}" não atende às condições impostas!\n')
print('Intervalo: ', end='')
for c in range(0, x+1):
.....print(c, end=' ')
Comentários:
--> Começamos o programa dando inicio a um laço while "infinito", ou seja, o programa só sairá do loop quando receber a instrução break.
--> Dentro do laço, solicitamos ao usuário para digitar o numero, dentro das condições. Independente do que o usuário digitar, o programa tratará essa entrada como uma string. Isso nos permite utilizar o método de string isnumeric(). Este método retorna True (verdade), caso a string possa ser convertida para um inteiro positivo e False (falso), caso não possa.
--> Com uma estrutura condicional aninhada, vamos primeiro testar se a string pode ser convertida para inteiro positivo, caso afirmativo, utilizamos uma função de casting para converter "x" para o tipo int (inteiro) e, então, testamos se o numero "x" é maior que 0.
Caso ambas condições da estrutura condicional sejam atendidas, vamos sair do loop (comando break), mas, se alguma ou as duas não forem atendidas, continuamos solicitando ao usuário para digitar um numero válido.
--> Fora do laço, utilizamos um laço for para apresentar os números dentro do intervalo [0, x].