2016-04-13 4 views
-4

私はユーザー入力配列に最大の数字を表示しようとしています。私は組み込み関数を使用することはできません。ここに私が作り出したコードがあります。それが実行されると、リストの中の最大のものではなく、常に最初の整数が返されます。プログラムは私のリストの中で最大の数字を表示しません

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

私の入力がある... 4を、 7,2,0 0 –

+0

私のマシンで正常に動作します。予想通り '最大値は7です。 'を表示します。 – Kevin

+0

再生できません。 – Pythonista

答えて

0

右コード:

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

それとも、あなたがあなた自身のlargestNumber機能の使用この作成したい場合: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

あなたのバージョンで修正された彼の' largest_number'関数の問題点は何ですか?私が見ることのできる唯一の違いは、リストに負の数が含まれていると正しく動作することです。 – Barmar

+0

私はstandart librabry関数を使って新しいバージョンを提案しました。float_input()func –

+2

これは、どのように彼がオリジナルで間違っていたことを理解するのに役立ちますか?これは、作業コードのリポジトリだけではなく、教育的リソースであるはずです。 – Barmar

関連する問題