最近喜欢的游戏要更新了,看了看新卡池里面那些角色期盼的眼神,再看了看眼我的钱包。算了我还是先赶紧找个工作吧。
言归正传,剩下的内容算入门篇的最后一部分了,就剩下的两部分内容:函数和文本操作(分为两篇笔记讲述)
1
函数(def语句)
函数的主要目的是将需要多次执行的代码放在一起。
例如要将温度的华氏度和摄氏度进行转换,这个时候可以定义一个函数。
定义函数def CtoF(c):在这里def是定义一个函数的语句,这个函数是CtoF也就是摄氏度到华氏度的转换。(c*9/5+32)这个是摄氏度转换到华氏度的公式,因为我们要将得出的结果进行作为返回值返回,所以要在公式前面添加return和括号(第二行代码是函数体,需要缩格tab)
在完成了函数CtoF的定义之后,(c)代表的是一个参数。要调用这个参数只需要提到这个函数的名字,也就是CtoF。然后再输入具体的数字(摄氏度),就能直接得出结果(华氏度)
注意:函数体内部的语句在执行时,一旦执行到return,函数就执行完毕并将结果返回。
这个时候可能有人要问了,这个return好麻烦,可不可以不要有返回值。
还真可以,没有返回值也可以直接调用函数。
Return函数的另外一个主要作用是可以返回多个值,只需要将值用逗号分开。
在这里我想要定一个函数(def)密码,并放入三个参数(x,y,z)。
在函数内部需要定义三个变量a,b,c来分别存储结果,用ord函数可以得出参数的unicode,并且加上固定数字2。
最后用return语句返回值,chr函数把unicode(数字)转换为字母。
将返回值(此处为字符串,需要引号)传回到变量a,b,c中,然后打印出来的z { |就是与'x','y','z'对应的密码(原视频中是指凯撒密码CaeCipher)。下面是输入的'你','好','吗'之后的结果。
简单讲这个例子就是要设置一串密码,按钮abc分别是密码xyz,但在这里用的是xyz所对应的数字编码。这里的xyz可以用任意数字(ord)也可以变为任意字符(chr)
在上面的例子中可以看出定义函数时,只需要把函数名、参数值和位置顺序接口就完成了。也就是该在调用时只需要知道如何传递正确的参数以及函数将返回什么样的值。
除了正常定义的必选参数还可以定义默认参数,例如要计算一个值的平方。
光凭人类的双手还是无法去定义无数个函数,根据上面的例子1,如果要计算x的多次方要怎么算。
在这个例子2中,还是用平方这个函数名(忘了改了)。首先定义两个参数的函数x和n,x代表底数,n代表次方。
在这个函数中需要定义一个临时的变量用于存储临时的结果,也就是result,且初始值为1。因为需要自乘n次,将其放在一个for循环中,循环n次。
result = result * n 是for循环的具体内容,所以要缩格两次,最终在return result返回值返回。
结果如图所示,调用函数平方(2的3次方)结果是8。
注意:这个时候旧的代码也就是上一个例子就失效了,因为缺少了一个参数。如果要让函数变得更加灵活,可以添加默认值例如上面例子的n改为n=2,这样在默认情况下就以n=2进行计算。
2
大伙看到这里可能觉得,哎呀你这第一部分怎么话怎么多,这下面部分岂不是更多。
我很负责任的回答:是的。
后悔是来不及了,来都来了就看完吧。
函数的作用域
目前为止,例子都是在函数内部定义了变量,所以调用时没有出现问题。但是变量是有有效范围的,并不是在任何位置都可以被访问的。
在函数内部的变量无法被外部访问,称为局部变量
在函数之外定义的变量被称为全局变量(任何函数都可以调用全局变量,无需通过参数传输)
在这里赋值变量g为10,在结果上,先是调用了嵌套的函数里面的()g值,然后才是外部的函数外面的()g值,在外面的调用完之后打印的g值才是10。
按照调用的顺序来打印结果,全局变量和局部变量都是相对的。
除了函数体外,其他的语句结构例如if、elif、else、for、while均不能改变其作用域。
匿名函数Lambda
上面提到的函数定义都需要在关键词def后面给出函数的名称,python中还有匿名函数存在。
在匿名函数中,关键词lambda后直接放参数,用逗号隔开冒号结尾,然后直接放一个表达式或者语句x+y。
这里不需要return是因为其返回值就是表达式的结果。
函数部分小结:
这一篇的内容就先到这里结束,本来是还有两个部分一共四个part的内容,但是不知道为啥我的那一篇文章老说我违规。
明明我也是一朵祖国的娇花,为什么要这么欺负我。
就剩下最后一个部分了,大伙下篇笔记见!
内容素材来源:https://www.linkedin.com/learning/learning-python-the-basics/2315489?autoplay=true&resume=false&u=2131553
页面更新:2024-05-04
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号