Exercise in python

0

Hello, I have python as one of my 2nd semester chairs and I need a little help. I have an exercise where I can not make it work correctly; here is the statement: "Write a program that will read from the keyboard a set of numbers until the user enters a negative number. At the end you should print the largest of these numbers." The following code was what I did but as I said above, it does not work correctly.

def read():
  list=[]
  n = int(input("Introduza um nº negativo para terminar:"))
  while True:
    if n > 0:
        n = int(input("Introduza um nº negativo para terminar:"))
        list.append(n)
    else:
        break
  print("O maior nº é:"+max(list))

read ()

    
asked by anonymous 23.06.2018 / 00:36

2 answers

0

You can do it this way:

#!/usr/bin/env python
numbers = []
while True:   
   try:
      n = int(input("Insira um numero negativo para terminar: "))
   except ValueError:
      print("Entrada inválida!")
      continue #continua o loop

   if (n > 0):
      numbers.append(n)
   else:
      if numbers: #verifica se lista está não vazia
         print("O maior numero é: " + str(max(numbers)))
      else:
         print("Não há numero para mostrar!")
      break

There are some small errors in your code such as: do not convert int to string in concatenation, do not treat exception, and repeat "n" variable without precision. This last little mistake is irrelevant. I hope this can help:)

    
23.06.2018 / 01:26
0
n = int(input('Introduza um número inteiro (negativo para sair): '))
maiorDeTodos = -1

while n > 0:
    if maiorDeTodos < n:
        maiorDeTodos = n
    n = int(input('Introduza um número inteiro (negativo para sair): '))

print('O maior de todos foi {}'.format(maiorDeTodos))
    
23.06.2018 / 00:59