前面我们讲解了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
调用完毕

本节我们主要来认识一下函数,学习函数的创建和调用,下一节我们来学习函数的参数传递。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)