2016-04-13 18 views
-4

Kullanıcı tarafından girilen bir dizide en büyük sayıyı göstermeye çalışıyorum. Yerleşik bir sıralama işlevi kullanmasına izin verilmez. İşte hazırladığım kod. Çalışırken her zaman en büyük yerine listemdeki ilk tam sayıyı döndürür.Program listemdeki en büyük numara görüntülenmiyor

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() 
bu görev için
+0

benim girdidir ... 4, 7, 2, 0 –

+0

Sadece makinemde çalışıyor. 'En yüksek değer: 7' beklendiği gibi yazdırır. – Kevin

+0

Yeniden üretilemiyor. – Pythonista

cevap

0

Sağ kodu:

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())) 

Veya, kendi largestNumber fonksiyon kullanımını bu oluşturmak istiyorsanız: 5

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

Sürümünüzün düzeltdiği 'en büyük_sayı işleviyle ilgili sorun nedir? Görebildiğim tek fark, listenin negatif sayılar içerdiğinde sizinkilerin doğru çalışmasıdır. – Barmar

+0

Standart librabry fonksiyonunu kullanarak yeni bir versiyon önerdim max ve daha kısa float_input() func –

+2

Bu, orijinalde neyin yanlış yaptığını anlamasına yardımcı olur mu? Bunun sadece bir çalışma kodu deposu değil, bir eğitim kaynağı olması gerekiyor. – Barmar

İlgili konular