想要让最后一个print出4.0,def里的gpa已经被重新附值了,为什么最后一个print还是1呢
gpa=1
def grade_gpa(grade,gpa):
if grade>85:
gpa=4.0
grade=int(input(“enter a grade”)
grade_gpa(grade,gpa)
print(str(gpa))
结果:
enter a grade86
1
第一种改法:你写的gpa在函数grade_gpa外部,如果在函数体内部需要修改外部的gpa,需要用golbal修饰
golbal gpa
gpa = 4.0
第二种改法:gpa作为函数grade_gpa的返回值返回出去,然后调用的时候接收一下就行了。
gpa 是全局变量,在局部作用域只能访问,不能重新赋值,如果想要重新赋值,需要添加global声明,否则就是创建一个同名的局部变量
def func:
global gpa
~如果觉得对你有帮助,请点击下采纳,谢谢~