前面我们讲解了Python的核心语法,这一章我们来进行函数的学习,有编程基础的同学一定知晓函数的用法,我们是零基础教程,所以在这里介绍一下什么是函数。
我们举个例子,我们拿一家公司的工资结算问题来探讨一下。
这家公司的正常工资为每天200元,如果当月工作的天数大于等于20天,多出的天数每天按300元来结算,并且加1000全勤奖金,如果工作天数少于10天,那么所有工资按每天150元来结算,并扣除200缺勤工资。
假设该公司有4个员工,ABCD 4个员工的工作天数分别为30、25、15、5,我们来看一下它的代码。
A = 30 B = 25 C = 15 D = 5 salaryA = (30 - 20) * 300 + 20 * 200 +1000 salaryB = (25 - 20) * 300 + 20 * 200 salaryC = 15 * 200 salaryD = 5 * 200 - 200 print(salaryA) print(salaryB) print(salaryC) print(salaryD)
这种方式不仅需要我们手动去判断,代码方式也是单一使用代码,当我们再次使用的时候还需要再次计算,当员工数量为1000的时候,我们肯定不能使用这种方式,因此我们来借助函数来解决这个问题。
A = 30 B = 20 C = 10 D = 5 def getsalary(name,days): salary = 0 if days >=20: salary = 20 * 200 + (days-20) * 300 +1000 print('{}的工资为:'.format(name),salary) elif days < 10: salary = days * 150 - 200 print('{}的工资为:'.format(name),salary) else: salary = days * 200 print('{}的工资为:'.format(name),salary) getsalary('A',A) getsalary('B',B) getsalary('C',C) getsalary('D',D)
输出结果为:
A的工资为: 8000 B的工资为: 5000 C的工资为: 2000 D的工资为: 550
通过上面这个例子,在解决相同问题不同变量的时候,我们只需要定义好一个函数,然后将这些变量反复使用这些函数即可解决问题,不需要我们去手动计算,计算机会帮助我们更准确迅速的解决问题。
函数可以帮助我们完成更简洁的代码、减少代码的重复、易于测试、快速开发、便于团队合作,因此在后面的学习过程中,函数是必不可少的一环。
1. 函数的创建
从上面的例子中我们可以看到函数的定义使用的关键字是def,定义函数的一般形式为:
def function_name(): 函数内容
在定义函数名字的时候我们需要注意几点:
1) 关键字不能作为函数名字。
2) 函数名中不能存在空格。
3) 函数名的首字母必须是大小写字母或者下划线。
4) 函数名的其余字母可以使用字母、数字以及下划线。
5) 不同函数名大小写不同的时候为不同函数。
我们来定义创建几个函数:
def get_name(): pass def get_salary(): pass def add_money(): pass
采用字母+下划线+字母的形式为常用的命名方式。
2. 调用函数
当我们创建好函数之后,如果不调用的话,不管函数中有多少print都不会执行的,因为函数就像我们买了一些工具放在仓库里,只有当我们拿出来的时候才能去使用,因此我们需要调用函数。
调用函数的时候,解释器会跳到函数体内,执行函数内的语句,当执行完毕之后回到调用的位置继续执行后续语句。
我们来看一下函数的调用过程。
def helloworld(): print('调用函数') print('helloworld') print('人生苦短,我用Python') helloworld() print('调用完毕')
输出结果为:
调用函数 helloworld 人生苦短,我用Python 调用完毕
本节我们主要来认识一下函数,学习函数的创建和调用,下一节我们来学习函数的参数传递。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程