我一直在尝试编写从列表中动态获取用户输入并执行通用算术运算符的代码。为了解决这个问题,我使用了索引和切片,这确实暂时解决了我的问题,但这样做又出现了一个新问题。
listgrades= []
num_students = int(input("How many students are you evaluating?"))
def student_info():
for i in range(0, num_students):
student_name=input("Enter your name here: ")
studnet_age=input("Enter your age here: ")
student_total_grade=int(float(input("What is your total grade")))
listgrades.append(student_total_grade)
student_info()
grades_sum= (listgrades[0] + listgrades[1] + listgrades[2]) / num_students
print(f"The average of all the student grades is {grades_sum}")
`
我正在尝试将 (listgrades[0] + listgrades[1] + listgrades[2]) 更改为更具可变性、可操作性和可扩展性的东西
我试图寻找解决方案或方法来解决这个问题,但我陷入了死胡同,此时我已经没有想法了。
我认为某种循环可能适用于此,但我不确定。
旁注:我有点研究过 numpy,但我无法使用它,因为我的学校实验室计算机不允许使用默认 python 模块库之外的任何内容。
我有一些一般性建议和一些具体建议。
对于一般建议,要查看可用的内置方法是使用 python 本身。
在命令行输入
python3
然后,在 python 中输入 dir(list)
您将看到列表的可用方法。
通过键入 help 和您感兴趣的类(后跟一个点)(而不是方法名称),您可以获得有关任何特定方法的更详细信息。例如help(list.count)
。
您还可以输入 help(list)
来获取所有功能和使用说明的更深入列表。输入 space
继续下一个屏幕,输入 b
备份屏幕。输入 q
结束帮助屏幕。
要退出 python,请输入 exit()
更具体地说,我同意循环将是一个更动态的方向,因为您询问有多少学生在您的输入中进行评估。
循环浏览列表的一种方法是:
for x in listgrades:
sum = sum + x
当然,您可以在循环内或类似的循环中执行其他数学运算。想必您将在循环之前初始化您的值。
有时您可能需要计算列表中有多少个成绩。幸运的是,有一个内置的列表方法可以为您提供称为计数的信息。如果您使用 python 的
dir(list)
或 help(list)
,您会看到这一点。
number_of_grades = listgrades.count
我认为这将为您指明您对代码的思考方向,而不会透露太多您正在学习的内容。祝你好运!