大家好,遇到问题输出不符合预期,想咨询一下您的意见
我的代码如下:
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
是一个独立的变量。作为一种替代方案,您可以考虑从函数返回分数和总数;作为一个规则,全局变量是一个坏主意。