簡體   English   中英

無法弄清楚為什么程序不提供輸出

[英]Can't figure out why program doesn't give output

我寫了一個程序,詢問用戶他需要計算平均成績的數量。 但我不明白為什么它不給我輸出。 這是我的代碼:

def input_data():
    number_of_smth = int(input())

    return number_of_smth

def answer_output(array, avg):
    print("The average of ", len(array), " grades is ", avg)
    print("High is: ", array[0], "; Low is: ", len(array)-1)

def array_init(n):
    array = []
    for element in range(0, n):
        array[element] = input_data()

    return array

def sorting(array):
    for j in range(len(array) - 1, 0, -1):
        for i in range(j):
            if array[i] > array[i + 1]:
               temp = array[i]
               array[i] = array[i + 1]
               array[i + 1] = temp

    return array

def average(array):
    sum_of_array_elements = 0
    for element in range(0, len(array), 1):
        sum_of_array_elements += array[element]

    return sum_of_array_elements / len(array)

def main():
    print("Please type the number of grades")
    grades_list = sorting(array_init(input_data()))
    answer_output(grades_list, average(grades_list))

main()

array_init存在錯誤。 array[element] = input_data()IndexError失敗。 發生這種情況是因為array為空。 在 location element上沒有任何東西可以分配。 您可以改用array.append(input_data())在列表中創建所需的項目。 通過使用 python 內置函數,您可以大大提高可讀性和可維護性。

def answer_output(array, avg):
    print("The average of ", len(array), " grades is ", avg)
    print("High is: ", array[0], "; Low is: ", len(array)-1)

def main():
    print("Please type the number of grades")
    number_of_grades = int(input())
    # use list comprehension to read in the numbers
    grades_list = [int(input()) for i in range(number_of_grades)]
    # sort the list    
    grades_list.sort()
    # average is the sum over the count
    average_grade = sum(grades_list) / len(grades_list)
    # print out the results
    answer_output(grades_list, average_grade)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM