函数初识
1. 函数定义:
def 函数名():
函数体
# def 关键字 -- 定义
# 函数名 -- 和变量定义规则一样
# () 必须要写格式 ,一会在盘他
# : 声明语句结束
内存中存放了一堆代码,如果不调用,里面不会变,不会开辟空间
2. 函数调用:
函数名 + ()
def my_len():
s = "alex"
count = 0
for i in s:
count += 1
print(count)
my_len() #调用 显示4
3. 函数的返回值:
return:
def my_len():
s = "alex"
count = 0
for i in s:
count += 1
return count
print(my_len()) # 4 count的值给了my——len()
lst = [1,3,5,7]
def li():
for i in lst:
lst.append(int(input(">>>")))
return lst
print(li()) # lst给了li()
#总结:
return的内容返回给了函数的调用,可以返回任意类型
return下方的代码不执行,终止这个函数(不是终止循环)
return 返回多个内容的时候还是元组形式
return 没有写返回值的时候返回的是None,不写return返回的也是None
4. ()
形参:函数的定义中括号里的是形参
实参:函数的调用括号里的是实参
传参:将实参传递给形参的过程
4.1 位置传参:
形参与实参必须一一对应,形参可以不用,但必须传参。
形参是默认参数是,实参传递时可以不写,若写内容就会将形参的默认参数覆盖。
位置参数 > 默认参数
def func(a,b,c):
print(a,b,c)
func(1,3,5) # 1 3 5 可以是任意数据类型
def func(a,b=2): #b=2 为默认参数,可以不用写实参
print(a,b)
func(1) #1 2
def func(a,b=2): #默认参数必须放最后
print(a,b)
func(1,3) # 1 3 位置参数 > 默认参数 b=3
形参与实参必须一一对应,形参可以不用,但必须传参
4.2 关键字传参:
def func(a,b,c):
print(a,b,c)
func(a=1,c=3,b=2) # 按a,b,c 传参, 1,2,3
def func(a,b,c=4):
print(a,b,c)
func(a=1,c=3,b=2) # 1 2 3 c=4被覆盖
#依次输出name,age,sex:
def userinfo(name,age,sex="男"):
print(name,sex,age)
while True:
name = input("name:")
age = int(input("age:"))
sex = input("sex(如果是男,直接回车!):")
if sex == "女":
userinfo(name,age,sex)
else:
userinfo(name, age)
4.3 混合传参:
位置参数 > 关键字参数
#错误示例:
def func(a,b,c):
print(a,b,c)
func(1,b=3,5) # 位置参数跟随在关键字参数后,报错
def func(a,b,c):
print(a,b,c)
func(1,3,c=5) # 1 3 5
def func(a:int,b:str): # 只有提示作用,没有约束作用
print(a,b)
print(type(a)) # int
print(type(b)) # int
func(1,2)