函数 Python从入门到放弃

为什么我要使用函数

0) 可以降低代码量(调用函数只需要一行,而拷贝黏贴需要N倍代码)
1) 可以降低维护成本(函数只需修改def部分内容,而拷贝黏贴则需要每一处出现的地方都作修改)
2) 使序更容易阅读(没有人会希望看到一个程序重复一万行“I love you”)

 

 创建函数

使用“def”关键字,要注意函数名后边要加上小括号“()”,然后小括号后边是冒号“:”,然后缩进部分均属于函数体的内容,例如:

1. def MyFun():

2.     # 我是函数体

3.     # 我也是函数体

4.     # 我们都属于函数MyFun()

5. 

6. # 噢,我不属于MyFun()函数的了

关键字参数

如果你有一些有许多参数的函数,您想要指定参数中的一些,那么,你可以通过为参数命名来为它们赋值——这叫做参数关键字——我们使用名称(关键字)而不是位置(我们一直使用的)来指定函数的参数。

这有两个优势,一是,使用函数容易,因为我们不需要担心参数的顺序。二是,如果其他参数有默认参数值,我们可以只给我们想赋值的参数赋值。

1. def func(a, b=5, c=10):

2. print('a为', a, '和b为', b, '和c为', c)

3. 

4. func(3, 7)

5. func(25, c=24)

6. func(c=50, a=100)

输出:
a为3 和b为7 和c为10
a为25 和b为5 和c为24
a为100 和b为5 和c为50

它是如何工作的:
名为func的函数中有一个参数没有默认参数值,后面两个参数有默认参数值。

第一次使用func(3, 7),参数a得到值3,参数b得到值7,参数c得到默认值10。

第二次使用func(25, c=24),参数a按照参数的位置得到值25,然后参数c按照参数名,也就是参数关键字,得到值24,变量b得到默认值5。

第三次使用func(c=50, a=100),我们为所有给定的值使用了参数关键字。注意,我们为参数c指定值是在参数a之前,尽管在函数定义中a在c前。

 

关于无返回值时

如果没有使用return语句指定返回值,Python也不是什么都不返回,ta会返回一个none对象,所以我们说Python所有的函数都有返回值

返回多个不同的类型值

默认用逗号隔开,是一元组的形式返回。也可以用列表包含起来返回。

全局变量

不到万不得已不要使用全局变量

1.代码可读性变差。

2.代码安全性降低。

global关键字

希望在函数中修改全局变量的值时使用global修饰该变量。

nonlocal关键字

在嵌套函数中,如果希望在内部函数改变外部海曙的局部变量,用nonlocal修饰该变量

关于调用内部函数返回的一些问题(易混淆)

def funout():

def funin():

Print(‘你成功访问到了in’)

return funin()

这时想访问funin()直接调用funout()即可

def funout():

def funin():

Print(‘你成功访问到了in’)

return funin

这时想访问funin(),需要funout()()才可以访问。

也可以“曲线救国”

go = funout()

go()

转载于:https://my.oschina.net/u/3187968/blog/829807

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值