2016-04-13 20 views
-4

Ich versuche, die größte Anzahl in einem Benutzer inputed Array anzuzeigen. Ich darf keine eingebaute Sortierfunktion verwenden. Hier ist der Code, den ich erstellt habe. Während es läuft, gibt es immer die erste Ganzzahl in meiner Liste statt der größten.Programm zeigt nicht die größte Nummer in meiner Liste

integers = [] 

print("Please enter a list of integers.") 
print("To finish entering the integers, enter a 0 for the value.") 

def floatInput(): 
    done = False 
    while not done: 
     integerIn = input("Please enter an integer < 0 to finish >: ") 
     try: 
      integerIn = int(integerIn)    
     except: 
      print("I was expecting an integer number, please try again...") 
      integerIn = input("Please enter an integer < 0 to finish >: ") 
     if integerIn == int("0"): 
      done = True 
     else: 
      integers.append(integerIn) 
    return integers 

floatInput() 

def largestNumber(array): 
    maxNum = -1 
    for i in array: 
     if i > maxNum: 
      maxNum = i 
    return maxNum 

def displayArray(): 
    print("The Maximum value is: " + str(largestNumber(integers))) 

displayArray() 
+0

mein Eingang ist ... 4, 5, 7, 2, 0 –

+0

Funktioniert gut auf meiner Maschine. Drucke 'Der Maximalwert ist: 7' wie erwartet. – Kevin

+0

Kann nicht reproduziert werden. – Pythonista

Antwort

0

richtigen Code für diese Aufgabe:

def float_input(): 
    integers = list() 
    while True: 
     value = int(input('Enter value (or 0 to exit): ')) 
     if value != 0: 
      integers.append(value) 
     elif value == 0: 
      break 

    return integers 

print(max(float_input())) 

Oder, wenn Sie möchten, dass Ihre eigene largestNumber Funktion Gebrauch erstellen diese:

def largest_number(lst): 
    max_elem = lst[0] 
    for j in lst[1:]: 
     if j > max_elem: 
      max_elem = j 
    return max_elem 

print(largest_number([1, 2, 5, 3, 4])) # print 5 
+0

Was ist das Problem mit seiner' larest_number' Funktion, die deine Version behebt? Der einzige Unterschied, den ich sehen kann, ist, dass Ihr richtig funktioniert, wenn die Liste negative Zahlen enthält. – Barmar

+0

ich schlug eine neue Version mit der Verwendung von Standart-Librabry-Funktion max und kürzer float_input() func –

+2

Wie wird das jedem helfen zu verstehen, was er im Original falsch gemacht hat? Dies soll eine Bildungsressource sein, nicht nur eine Sammlung von Arbeitscode. – Barmar

Verwandte Themen