|
3鱼币
这一道题目是关于局部变量和外部变量的:我不明白为啥 程序1不能运行,而程序2却可以运行!!!内部函数不都没有里面的局部变量么!!
程序一:
def my_fun2(m,n):
k=m*n
return k
def my_fun1(m,n):
k=my_fun2()
return m*n*k
print(my_fun1(9,10))
运行报错为:
Traceback (most recent call last):
File "C:/Users/tom/AppData/Local/Programs/Python/Python35/3.py", line 11, in <module>
print(my_fun1(9,10))
File "C:/Users/tom/AppData/Local/Programs/Python/Python35/3.py", line 7, in my_fun1
k=my_fun2()
TypeError: my_fun2() missing 2 required positional arguments: 'm' and 'n'
程序2:
# c_d函数为求m,n的最大公约数
def c_d(m,n):
if n:
return c_d(n,m%n)
else:
return m
#c_m函数为求m,n两个数字的最大公倍数
def c_m(m,n):
k=c_d(m,n)
return m*n/k
print(c_m(9,10))
程序运行正确!!!得到结果为90!!!
黑人问号:难道不应该跟上面一样报错么!?
你的my_fun1程序中调用my_fun2的时候并没有传入参数m,n,只是my_fun2(),括号内没有参数
|
-
程序一
最佳答案
查看完整内容
你的my_fun1程序中调用my_fun2的时候并没有传入参数m,n,只是my_fun2(),括号内没有参数
|