派森小镇(六)熊孩子

派森小镇的故事

        雾霭沉沉,水波澄碧。在一处悠远僻静的地方上有一个神奇的小镇,小镇的名字叫派森镇。小镇的前面有一条河,碧蓝的水映出小镇周围水墨画般朦胧的世界。

        小镇上的人一出生就拥有特殊的技能,他们中的每一个人都是python的成员,他们用自己的特殊技能构成了千变万化的python世界,他们可以用自己的特殊身份设计与研发。

        这天清晨,派森小镇上一如往常一样宁静和谐。但是在一座小房子里,有一个熊孩子在哭闹。这个熊孩子叫做第三方库函数,由于性格原因显得十分的叛逆。

        在派森小镇里,函数是一个大家族。函数是可重用的程序的代码块,函数可以实现代码的复用,更能实现代码一致性。函数代表一个任务或者一个功能,是代码复用的机制。而函数分为内置函数、标准库函数 、第三方库函数。

        因为第三方库函数程序的代码块与其他的函数相比不太稳定,所以小函数也成为了一个名副其实的熊孩子。

        这天,第三方库函数的父母待着他去海洋馆玩,小函数突然就跑开了,说着“爸爸,妈妈,你们快来看,这里好多鱼啊。”“你慢点跑!”父母嘱托着。

        突然,小函数站在装满海洋生物的鱼缸面前,他想要跳下去和小鱼小虾一起游泳。

小函数的这个行为可是吓坏了他的父母,连忙劝他:“小函数,快下来,哪里很危险啊。”

“嘻嘻!这里好好玩啊,我要跳下去,和这些小鱼小虾玩!”

        他的父母被吓得魂都飞了,正当小函数要跳下时,海洋馆的工作人员及时赶到,将小函数救了下来。

        小函数的父母十分感谢着说:“谢谢你!”

这件事情之后,小函数父母再也不敢带小函数去外面了,这天把小函数关在家里。

但是小函数在家里还是不消停,在家里每天都调皮捣蛋,一会儿把家里的电视机砸坏了,一会儿就在墙上画满了涂鸦,一会又把自己的玩具全部拆坏。小函数的父母看到自己的家变成了这样表示十分无奈。

        “哎,这可怎么办啊,小函数怎么才能够不再调皮啊。”

        “小函数这么调皮主要是第三方库函数程序设置有问题,咱们还是去变量先生的商店去看看吧。”

        “好吧,只能这样了。”

        第二天,他们一家去了变量先生的商店。

        “变量先生,你看一看小函数吧,他特别的叛逆和调皮。”小函数的父母说道。

        “他是第三方库函数吗?”变量先生问道。

        “是的。”

        “不用担心,一般的第三方数库函数小的时候都很调皮,主要是程序设置的原因。”

随后,变量先生请出了自己的工具,打开电脑设置和程序,使用def定义函数,然后就是一个空格和函数名称,Pytohn执行def时,会创建一个函数对象,并绑定到函数变量名上。

然后使用return 返回值,内置函数对象自动创建,标准库和第三库函数,通过import导入模块时,会执行模块中的def语句。

最后,小函数改变了调皮的性格。

派森先生

    大鹏

相关知识---函数

1.函数参数的传递本质是从实参到新参的赋值操作。python中一切皆对象。所有赋值操作都是“引用的赋值”所以参数传递本质上是引用传递。

2.具体操作

(1)对“可变对象”的“写操作”直接作用于原对象本身

(2)对“不可变对象”的“写操作”会产生一个新的“对象空间”,并用新的值填充这些空间

(3)可变对象 :字典 列表  集合 自定义对象等

      不可变对象:数字 字符串 元组 function

3.传递可变对象的引用:对同一对象的操作,没有改变原对象

4.传递不可变对象  产生新的对象  对新的对象的操作

5.浅拷贝与深拷贝

(1)浅拷贝 ::不拷贝子对象的内容,只是拷贝子对象的引用

(2)深拷贝 :连子对象的内存一起拷贝,对子对象的修改不影响源对象

6传递不可变对象包含的子对象是可变的,则方法内修改了这个可变对象,原对象也发生了变化。

(二)参数类型

1. 位置参数:函数调用时,实参按默认值位置顺序传递,需要个数和形参匹配,按位置进行的参数称为“位置参数”

2. 默认值参数:我们可以为某些参数设置默认值,这样这些参数在传递时是可选的,称为默认值参数,默认值参数放到位置参数后面

3. 命名参数(关键字参数)按形参名称传递的参数

4. 可变参数:可变数量的参数

(1)带一个星号,将多个参数收集到一个元组里边

(2)带两个星号,将多个参数收集到一个字典里边

(3)将带星号的参数尽量写在后面

(4)在带星号的“可变参数”后面增加新的参数,必须在调用的时候“强制命名参数”

四、lambda表达式和匿名函数

1.lambda表达式声明匿名函数,lambda函数是一种简单,在同一行中定义函数的方法。Lambda函数实际生成一个函数对象

2.lambda只允许包含一个表达式,不能包含复合语句。该表达式计算结果就是函数返回值。

3.语法规则 lambda 参数 :表达式

五、eval函数

1.功能:将字符串当成有效的表达式来求值并返回计算结果

2.语法:eval(source[,globals,[,locals]])->value

  (1)source:一个pytohn表达式或函数compile()返回代码对象

(2)globals:可选必须是dicitionary

(3)locals:可选任意映射对象

六、递归函数

1.递归基本思想:自己调用自己

2.递归函数:自己调用自己的函数,在函数体内内部直接调用自己,每个递归必须包含两部分

(1)终止条件:递归什么时候结束,一般用于返回值不在调用自己

(2)递归步骤 把第n步值和第n-1步相关联

3.递归函数会创建大量的函数对象,谨慎使用

二、关键字

1. nonlocal用来在内部函数,声明外层的局部变量

2. Global函数内声明全局变量,然后才使用全局变量

三、LEGB规则

Python查找名称是按照LEGB原则查找的

Local     Enclosed   Global   Built in

Local指的是函数或者类的方法内部

Enclosed:嵌套函数(一个函数包裹另一个函数)

Global  :模块中的全局变量

Built in :指的是python为自己保留的特殊名称

派森

先生

派森

先生

大鹏diary

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据小金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值