函数
引子
函数初识
函数的好处
1.减少代码的重复性(冗余)
2.代码可读性高了
3.将功能进行封装(造工具)
我们遇到同样的问题,老是书写程序太过于麻烦,所以我们用函数来调用.
字符串 列表 集合 这道题输出的结果是相同的
#s = "alexdsb"
#s = [1,2,3,4,5,6,7]
s = (1,2,3,4,5,6,7)
count = 0
for i in s:
count += 1
print(count)
于是我们下面来定义函数
def func():
s = (1,2,3,4,5,6,7)
count = 0
for i in s:
count += 1
print(count)
func() #必须填这个才能调用
定义规则
def my_len( ) :
函数体
def 关键字 定义
func 函数名 和变量定义规则一样
( ) 必须要写格式
: 声明语句结束
调用函数
my_len( ) 函数名 + ( )
函数的返回值
def yue():
print("打开手机")
print("打开微信")
print("找到女友")
print("晚上约吗")
print("今天很高兴")
print("确实有点累")
print(yue())
#打开手机
打开微信
找到女友
晚上约吗
今天很高兴
确实有点累
None
def yue():
print("打开手机")
print("打开微信")
print("找到女友")
print("晚上约吗")
return"今天很高兴" #return 返回 下面它就不执行了
print("确实有点累")
print(yue())
打开手机
打开微信
找到女友
晚上约吗
今天很高兴
1. renturn 的内容是返回给调用者
2. return 下面的代码不执行,终止了这个函数
3. return 返回多个内容的时候是元组形式
4. return 没有写返回值,返回的是 None,不写 return 返回的也是 None
lst = [1,2,3,4,5,6]
def func():
for i in lst:
print(i)
return
print(func())
结果:
1
None
lst = [1,2,3,4,5,6]
def func():
for i in lst:
print(i)
print(func())
结果:
1
2
3
4
5
6
None
lst = [1,2,3,4,5]
def func():
for i in lst:
print(i)
lst.append(input(">>>"))
return lst
func()
结果:
1
2
3
4
5
>>>123
形参和实参
形参 -- 函数的定义中括号里的是形参 位置参数 >默认参数 混合参数
实参---函数调用中括号里是实参 位置参数 >关键字参数 混合参数
传参: 将实参传递给形参的过程
位置传参时 :形参和实参必须要一一对应
def yue(app,app1,app2): # 形参
print("打开手机")
print(f"打开{app}")
yue("微信","陌陌","探探") #实参
#
打开手机
打开微信
def yue(a,b,c):
print("打开手机")
print("附近的人")
print("聊一聊")
print(f"打开{a},{c},{b}")
yue({1:2},(1,2,3,4,5),[9,8,7,6,5]) #这里要说明的是实参的位置,放的东西可以是列表,元组,字典等...
打开手机
附近的人
聊一聊
打开{1: 2},[9, 8, 7, 6, 5],(1, 2, 3, 4, 5)
关键字传参:
默认参数放在位置参数后边
位置参数>默认参数
def func(a,b=1): #b=1默认参数
print(a,b)
func(3,8) #3 8 形参是默认的参数时,实参传递可以不写,写了就会把形参默认的参数覆盖
func(3) #3 1
def userinfo(name,sex,age):
print(name,sex,age)
while True:
name = input("name:")
sex = input("sex:")
age = input("age:")
userinfo(name,sex,age)
def userinfo(name,age,sex):
print(name,sex,age)
while True:
name = input("name:")
sex = input("sex:")
age = input("age:")
userinfo(name,age,sex="男") 混合参数
def func(a,c,b=1): #a,c位置参数 b=1默认参数
print(a,b,c)
func(a=1,b=5,c=2) 关键词参数
今日总结
函数的好处 : 减少代码的重复性 代码可读性高 将功能进行封装(造工具)
- 定义一个函数
def func():
函数体 #循环调用
def 关键字
func 函数名
() 传递参数
: 语句结束
-
返回值
return 返回值内容
return 返回一个内容,可以返回任意类型 多个内容以元组的形式返回
return 终止函数 切记不能终止循环
return 不写返回值或者没有的时候就要返回 None
return 将内容返回了函数调用
-
函数的参数
形参: 函数定义的时候叫做形参 包括 位置参数 > 默认参数
实参 : 函数调用的时候叫做实参 包括 位置参数,关键字参数,混合参数
传参: 将实参传递给形参的过程叫做传参
形参是默认的参数时,实参传递时可以不写,写了就会把形参的默认参数覆盖
-
位置传递的时候必须要一一对应
def yue(app,app1,app2): print("打开手机") print(f"打开{app}") yue("微信","陌陌","探探") # 打开手机 打开微信