当用户选择输入的次数为“x”时,如何创建变量?

2024-09-28 21:27:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在写一个程序,计算不同学生的平均成绩。如果我想让用户输入他们课程的学分值和分数值的百分比;我是否有可能询问学生目前正在参加的课程,并在每次用户输入新变量的值时将每个值分配给新变量。对于每个新输入,如何在每次创建时将它们添加到等式中? 例如:

def gpa1():
    return ((x1*y1)+(x2*y2)+(x3*y3)+(x4*y4)+(x5*y5)+(x6*y6)+(x7*y7)+(x8*y8)+(x9*y9)+(x10*y10))/((y1+y2+y3+y4+y5+y6+y7+y8+y9+y10))

如果我总共有10个过程,那么这个等式就是这样的,但是我希望用户可以选择改变他们能够进行的输入,而不是10个。每次用户输入时,都会添加一个新变量my,或者删除一个旧变量my。我怎样才能做到这一切? 我非常感谢任何试图在这方面帮助我的人


Tags: 用户my学生课程y1y2等式y3
1条回答
网友
1楼 · 发布于 2024-09-28 21:27:48

这里真正的问题是,您认为n个用户输入需要n个名称。那根本没有必要

您可以将输入存储在容器(列表、字典、元组等)中,也可以在输入时对其进行处理。例如,在收集所有值之后,您不需要计算y1 + ... + y10,您可以初始化变量sum_y = 0并继续添加y

一种读取用户输入直到看到sentinel值的最低限度方法如下所示:

>>> inputs = list(iter(input, 'q'))
1
2
3
q
>>> inputs
['1', '2', '3']

如果要捕获无效输入,问题Asking the user for input until they give a valid response非常相关

你还应该阅读How do I create a variable number of variables?的答案,以了解为什么你不应该想要你想要的

相关问题 更多 >