Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在用户a';分配变量时创建变量;x';用户选择输入的次数?_Python - Fatal编程技术网

Python 如何在用户a';分配变量时创建变量;x';用户选择输入的次数?

Python 如何在用户a';分配变量时创建变量;x';用户选择输入的次数?,python,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+y

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

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。我怎样才能做到这一切?
我非常感谢任何试图在这方面帮助我的人。

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

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

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

>>> inputs = list(iter(input, 'q'))
1
2
3
q
>>> inputs
['1', '2', '3']
如果您想捕获无效的输入,这个问题非常相关


您还应该阅读的答案,以了解为什么您不应该想要您想要的。

使用列表存储值,而不是为
n
用户输入创建
n
变量。