[英]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.