目录
一、函数的引入
在程序开始、中间、结束,输出'呵呵、哈哈、嘻嘻、嘿嘿'
# 程序开始
print('呵呵,哈哈,嘻嘻,嘿嘿')
print('呵呵,哈哈,嘻嘻,嘿嘿')
print('呵呵,哈哈,嘻嘻,嘿嘿')
#程序进行
print('呵呵,哈哈,嘻嘻,嘿嘿')
print('呵呵,哈哈,嘻嘻,嘿嘿')
print('呵呵,哈哈,嘻嘻,嘿嘿')
#程序结束
print('呵呵,哈哈,嘻嘻,嘿嘿')
print('呵呵,哈哈,嘻嘻,嘿嘿')
print('呵呵,哈哈,嘻嘻,嘿嘿')
以上是在未学习函数之前的方法,我们看到程序代码的重用率太低了,怎样提高程序代码的重用率呢?
这时候函数出现了,我们可以使用函数
def smile():
print('呵呵,哈哈,嘻嘻,嘿嘿'*3)
print('程序开始啦!')
smile()
print('程序进行中!')
smile()
print('程序结束啦!')
smile()
二、函数介绍
如果在开发程序时,需要多次调用某一部分代码,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码组织为一个小模块,这就是函数。
三、函数的定义与调用
你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,不带表达式的return相当于返回 None。
调用函数: 函数名()
1.定义函数和调用函数的语法
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名():
函数体-->要执行的内容
注意:函数名要遵循标识符命名规则,并且遵循下划线命名法
调用函数: 函数名()
注意:函数只有在调用的时候才会执行。
# 创建一个say_hello函数
def say_hello():
print('hello!')
print('nice to meet you!')
调用函数
say_hello()
2. 函数说明(注释)
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
def say_hello():
'''
你好!
很高兴见到你!
'''
print('hello!')
print('nice to meet you!')
Ctrl+q查看函数注释
四、定义带有参数的函数
函数的参数主要的作用是将函数外的数据带入到函数体执行逻辑判断。
定义参数的格式:
def 函数名(参数1,参数2,参数3,...):
函数体
调用的时候,这个函数定义时有几个参数,就需要传递几个参数
默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
定义时小括号中的参数,用来接收参数用的,称为 “形参”
调用时小括号中的参数,用来传递给函数用的,称为 “实参”
定义一个带有参数的函数:
def sum(a, b):
sum = a + b
print('{}+{}={}'.format(a, b, a + b))
1.函数参数的类型
不可变类型参数:整数、字符串、元组。
fun(a)内部修改 a的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:列表,字典。如 fun(la),
则是将 la 真正的传过去,修改后fun外部的la也会受影响
1、传递不可变类型参数,不会影响参数本身。
a = 10000 #不可变数据类型,不能修改它的值
print(id(a)) #输出--->35572112
def fun(b):
print(b) #输出--->10000
print(id(b)) #输出--->35572112
b = 100 #重新开辟内存空间
print(b) #输出---->100
print(id(b)) #输出---->1515485296
fun(a)
print(a) #输出--->10000
print(id(a)) #输出--->35572112
2.传递可变类型参数,会影响参数本身。
a = [1, 2, 3] # 可变数据类型
print(id(a)) #输出--->41854664
def fun(b):
print(b) #输出--->[1, 2, 3]
print(id(b)) #输出--->41854664
b.append(4) #还是原来的内存空间
print(b) #输出--->[1, 2, 3, 4]
print(id(b)) #输出--->41854664
fun(a)
print(a) # 改变了 输出--->[1, 2, 3, 4]
print(id(a)) #输出--->41854664
五、函数的返回值
所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果。调用者根据需求利用返回值做不同的操作。
函数返回值使用:
return 返回值
作用:
1.可以返回一个值
2.结束函数,所以一般return放在函数体最后面
没有return语句,默认返回None
def sum(a, b):
he = a + b
return he
print('代码块') #不执行
ret = sum(2, 4)
print(ret) #输出6
返回多个值:
语法:
def 函数名():
函数体
Return 值1,值2,...
返回多值其实就是返回一个tuple,在语法上返回一个tuple可以省略括号
def func():
a = 10
b = 20
return a, b
ret = func()
print(ret) #输出--->(10, 20)
i, j = ret
print(i, j) #输出--->10 20
注意:
1.如果函数不写返回值,默认返回None
2.return 关键字有两个作用,一个作用是返回内容,另一个作用是结束此方法。
3.return 关键字后面不允许在写代码。