Delete the last number that I typed

0

Friends, one more doubt (^^). Look at the following code:

Numero = int(input('Digite um Numero'))

inteiro = []
inteiro.append(Numero)

while Numero>0:
  Numero = int(input('Digite um Numero'))
  inteiro.append(Numero)
if Numero<0:
  print(sorted(inteiro,reverse=True))

In my final list, I want you to print the values before the last number.

    
asked by anonymous 05.03.2018 / 18:02

1 answer

0

The problem really has to do with how you structured the program. Within while you are reading the number and add it to the list regardless of its value:

while Numero>0:
  Numero = int(input('Digite um Numero'))
  inteiro.append(Numero) # aqui adiciona mesmo se for 0 ou negativo

The number is added even when it is not valid, because the while comparison is made later. To solve, just restructure a little:

inteiro = []

while True:
  Numero = int(input('Digite um Numero'))
  if Numero <= 0: # logo após ler o numero vê se é inválido
      break # caso seja termina o while sem adicionar
  inteiro.append(Numero) # se for valido adiciona à lista e segue para o próximo

print(sorted(inteiro,reverse=True))

See the code working on Ideone

    
05.03.2018 / 19:13