鱼C论坛

 找回密码
 立即注册
查看: 4035|回复: 2

[已解决]Python /局外部变量

[复制链接]
发表于 2017-3-2 11:09:12 | 显示全部楼层 |阅读模式
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!!!  
黑人问号:难道不应该跟上面一样报错么!?
最佳答案
2017-3-2 11:09:13
你的my_fun1程序中调用my_fun2的时候并没有传入参数m,n,只是my_fun2(),括号内没有参数

程序一

程序一

最佳答案

查看完整内容

你的my_fun1程序中调用my_fun2的时候并没有传入参数m,n,只是my_fun2(),括号内没有参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-2 11:09:13 | 显示全部楼层    本楼为最佳答案   
你的my_fun1程序中调用my_fun2的时候并没有传入参数m,n,只是my_fun2(),括号内没有参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-3-2 18:49:50 | 显示全部楼层
不如喝牛奶 发表于 2017-3-2 14:08
你的my_fun1程序中调用my_fun2的时候并没有传入参数m,n,只是my_fun2(),括号内没有参数

好的,我知道了,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 09:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表