cuitao3000 发表于 2017-3-2 11:09:12

Python /局外部变量

这一道题目是关于局部变量和外部变量的:我不明白为啥 程序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!!!
黑人问号:难道不应该跟上面一样报错么!?

不如喝牛奶 发表于 2017-3-2 11:09:13

你的my_fun1程序中调用my_fun2的时候并没有传入参数m,n,只是my_fun2(),括号内没有参数

cuitao3000 发表于 2017-3-2 18:49:50

不如喝牛奶 发表于 2017-3-2 14:08
你的my_fun1程序中调用my_fun2的时候并没有传入参数m,n,只是my_fun2(),括号内没有参数

好的,我知道了,谢谢啦
页: [1]
查看完整版本: Python /局外部变量