Python: Function Output Result Not as Expected



大家好,遇到问题输出不符合预期,想咨询一下您的意见

我的代码如下:

score = []
total = 0
def mark():
counter = 1
size = int(input("Please Enter The Number of Subjects in Semester: "))
for cnt in range (size):
value = int(input(f"Please Enter Mark of Subject {counter} : "))
score.append(value)
counter = counter + 1
total = sum(score)
mark()
print(score)
print(total)

,输出为:

Please Enter The Number of Subjects in Semester: 2
Please Enter Mark of Subject 1 : 10
Please Enter Mark of Subject 2 : 10
[10, 10]
0

问题1:如何在不使用全局变量的情况下将打印(总)输出变为列表中值的总和而不是0 ?

问题2:为什么列表可以被追加,但是分数不能做和?

添加

global total

作为函数的第一行。事实上,函数中的total与外部的total是一个独立的变量。作为一种替代方案,您可以考虑从函数返回分数和总数;作为一个规则,全局变量是一个坏主意。

最新更新