gpt4 book ai didi

python - 尝试对列表进行平均,但我不知道错误 : unsupported operand type(s) for +: 'int' and 'tuple' 是什么意思

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:00 26 4
gpt4 key购买 nike

First_Name = input("What is your first name: ")
Last_Name = input("what is your Last Name: ")
print ("Hello, let's see what your grades are like", First_Name, Last_Name, ",you degenerate!")

grade_one = int(input("Enter your first grade: "))
grade_two = int(input("Enter your second grade: "))
grade_three = int(input("Enter your third grade: "))
grade_four = int(input("Enter your fourth grade: "))
grade_five = int(input("Enter your fith grade: "))
grades = grade_one,grade_two,grade_three,grade_four,grade_five
Grade_list.append(grades)
print (Grade_list)

def average(numbers):
total = sum(numbers)
total = float(total)
results = total/len(numbers)
return results
print (average(Grade_list))

基本上,我在这里想要完成的是获取用户输入的成绩列表的平均值,然后将其转换为列表。但无论我使用了多少种不同的技术,我似乎都可以对列表进行平均(当然我对此很陌生,所以我可能只是没有采用正确的技术)。我不断遇到错误:

Traceback (most recent call last):
File "python", line 23, in <module>
File "python", line 19, in average
TypeError: unsupported operand type(s) for +: 'int' and 'tuple'

我不确定这个错误意味着什么,我有一个想法,我的列表在应该打印为连续的整数列表时打印为元组。我不确定如何解决这个问题(或者这是否是问题所在)。提前致谢!我意识到我的代码可能不是最有效的代码,我当然愿意接受建议! :)。这是一项学校作业,所以我知道这并不完全是火箭科学,但我似乎无法理解这一点。

最佳答案

说明

那是因为您正在这一行创建一个元组:

grades = grade_one,grade_two,grade_three,grade_four,grade_five

如果您在该行之后设置 print(grades),您将看到您的输出,例如:

(56, 56, 56, 56, 56)

所以,当你调用它时:

Grade_list.append(grades)

您现在正在创建一个其中包含单个元组的列表:

[(56, 56, 56, 56, 56)]

因此,当您调用方法时,您正在尝试针对元组执行计算,这正是错误消息的来源。

解决方案

要严格关注您的代码,您应该做的是,在您询问的每个条目之后将每个答案附加到您的 Grade_list 中。

例如,显示您应该执行的操作的代码片段:

grade_one = int(input("Enter your first grade: "))
Grades_List.append(grade_one)
grade_two = int(input("Enter your second grade: "))
Grades_List.append(grade_two)

等等...

现在,请提供有关如何改进您正在做的事情的建议。相反,您应该做的是循环您的问题,直到您耗尽了想要向用户询问其成绩的次数,然后将其附加到列表中,这样您就不必创建多个变量来完成所有这一切。

因此,询问用户成绩的整个代码块可以替换为:

Grade_list = []
for grade_number in range(1, 6):
grade = int(input("Enter grade {}: ".format(grade_number)))
Grade_list.append(grade)

当运行更新后的代码时,经过更改,我们得到:

What is your first name: bob
what is your Last Name: hope
Hello, let's see what your grades are like bob hope ,you degenerate!
Enter grade 1: 44
Enter grade 2: 44
Enter grade 3: 44
Enter grade 4: 44
44.0

关于python - 尝试对列表进行平均,但我不知道错误 : unsupported operand type(s) for +: 'int' and 'tuple' 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com