首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python基础(四)

继上一篇我们介绍了Python的列表,元组,以及字典,以及对应的常见操作.今天我们就来说说Python的函数.一想到函数,balabala....肾是头疼...不过没关系了,跟着小六走,一遍学不会,大不了学两遍嘛...哈哈,话不多说...

先皮一下

通过一个小栗子,我们来复习上一篇我们学习的内容,温故而知新.小六变小七...

简单的学生管理系统(毛糙版)

需求: 打印功能提示,获取功能选择(有增删改查的功能)

根据用户的选择,进行对应的操作

这里穿插一个小知识点,如果在if语句中使用elif,但在条件后并没有执行代码语句,在编译器中会报错,这时我们使用"pass",来占位,避免程序报错,以上还有两个功能点并未实现,有兴趣的小伙伴自己试试看咯,

这里你们或许会有疑问,为什么我写的注释都是"注释",而不是"#"号,那是由于我使用Markdown的原因啦.

还有一点,细心的童鞋应该注意到了,在Python中比较两个字符串我使用了"==",这个在Java中是吃一种错误的写法,至于Python为什么可以,我们以后会详细介绍...

进入正题

今天我们主要讲解Python的函数

什么是函数:大白话.看上面栗子,把独立功能代码重复使用,也就是函数,使用函数把这块代码块封装成一个整体

为什么要写函数,解决代码的冗余,看上面的栗子,是不是有些代码重复写了好多遍,这在开发中是一件非常头疼的事情,想想当你的老大review你的代码的时候,语重心长的对你说,小六啊,今天晚餐没有鸡腿,你是不是会尴尬又难过...

如何定义函数

那么我们如何让我们定义的函数执行呢,这里就需要调用它了,如何调用函数呢?

如何给我们定义的函数加上一些注释也就是说,这个函数是干嘛用的,应该怎么做呢?

有关函数的参数

现在我们有个需求,需要对两个数字进行加法运算,既然是加法,我们肯定需要抽取一个函数方法,该怎么做呢?按照我们现在的理解...

仔细看看是没什么问题,但是,我们之前说过,函数的作用就是为了复用,但是上面我们所定义的,并不能复用,怎么办呢,接下来,我们就要引入参数的概念

我们将上面的栗子做一下改进

参数可以写多个,我们写了几个参数,在调用的时候也必须传几个参数.

接下来我们用一个例子加强一下

定义一个两个数相加的方法

需要注意的点,def前切记不要加缩进,在Python中一定注意迷之缩进!

还有就是,在我们使用这个参数的时候,一定要注意当前我们传递的参数已经声明

有关函数的返回值

什么是返回值呢?

当你调用函数的时候,函数给咱们一个结果,这个结果,就是返回值.

例如Python中的input()...

那么如何得到这个结果呢?

看栗子:

result就是我们接受sum函数给我们的返回值.而不是直接打印,直接打印的我们无法脱离定义函数做其他操作,返回值则不同

如果一个函数中编写了多个return,想想程序会崩溃吗

由此可见,如果一个函数中编写了多个return,程序并不会崩溃,原因是第一个return执行后这个函数也就结束了,下面的return也就不会被执行

在函数中也可以使用for/while/if等等语句,也就可以实现在不同条件下的返回值不同

那么当这个函数没有返回值,我们却定义一个变量去接受这个函数的返回值又会出现什么呢,有兴趣的小伙伴可以去试试哦,程序会定义一个none,而并不会报错

函数的四种类型

无参数,无返回值

无参数,有返回值

有参数,无返回值

有参数,有返回值

我们在定义函数的时候,相信会随着我们开发经验的不断积累,自然知道如何设计函数了

完善开篇的小栗子

我们通篇来看开篇小栗子,在小栗子中,我们的代码可以直接编写,并没有涉及到函数,我们先对其中的部分进行简单的抽取

我们对上面的栗子进行了简单的抽取,大家可以看出,整个页面代码,被我们分成了全局变量部分,函数部分,以及主要代码部分,那么我们这样是不是最优的代码编写逻辑呢

我们试着将上面的主要代码执行部分,抽取为main函数.也就是执行函数,一般我们这么定义,见名知意嘛

我们虽然抽取了代码为函数部分,但又该怎么执行呢?

只要在函数之后 main(),就可以调用执行了,再来看整个代码结构,全局变量,函数,调用函数执行,这样可读性是不是比原来提高很多呢?

函数嵌套

在上面的栗子中,我们看到了在main函数中调用printMenu()函数,这就是函数的调用

有关调用顺序,例如我们在A函数中执行了打印1,然后打印2这时候我们调用了B函数,这样,我们就先执行B函数的代码,直至B函数执行完毕,才会继续执行A函数中的代码.具体参看上面栗子咯.

举栗子,函数求平均值

为什么先这么写呢,嵌套使用函数,可以减少代码的重复编写,实现更高效的代码复用.

局部变量

什么是局部变量呢?栗子来看

调用test1(),打印什么呢?输出100

调用test2(),打印什么呢?输出200,300

至此都没毛病

那么我们这样做,先调用test1(),然后再调用test2(),会输出什么.跑跑看,依次打印,100,200,300

这个小栗子主要是要说明,在函数内定义的变量值,就是我们说的局部变量,各种赋值操作只在函数内有效

形参也是局部变量

全局变量

什么是全局变量呢?按照上面的逻辑,那就是说,在函数外面定义的变量,就是全局变量

程序竟然爆出了错误,这是为什么呢,这就是Python不同于其他语言的地方,Python中的全局变量,可以随时获取,但却不可以修改

是不能改吗?换个姿势

我们来确定一下num是否真正发生了改变,我们重新调用函数test1(),发现依旧输出200.可见num的值确实发生了改变.

由此可见,我们使用"global"来声明一下,便可以在函数内部修改全局变量.

小尾巴

现在我们想一想,我们在函数中是否可以返回多个值,又该怎样返回呢?

返回的是什么类型呢?思考一下...

问题很简单,可以跑一跑...

今天我们就到这里了,新的一个月开始啦,小六期待小伙伴的投稿,我们共同进步啦.

有小伙伴说我的文章里有好多错别字,影响阅读,我一定会注意的啦.

再次希望收到小伙伴的投稿~~~

人生苦短,我用Python~~

我们下期见~嗷

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180402G1CIWO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券