一:为什么要使用函数,函数的定义格式
1,若不是有函数,那么写的代码则会重复使用,而且可读性差。
2,函数的格式:def func(x): def是关键字,必须定义 fun函数名(要有代表意义) (x)形参
func() 函数名+() 代表执行这个函数。
3.使用函数时要注意:函数是以功能为导向,函数内部尽量不要有print。
二:函数的五种返回值
1.函数执行到return,就停止,不再执行
2.不写return None
3.return None
4.return 单个值
5.return 多个值 返回后是元组的形式
1.只有return
def my_len(): l1=["sbc",1,2,3] count=0 for i in l1: count+=1 return a=my_len() print(a) #None
2,return None
def my_len(): l1=["sbc",1,2,3] count=0 for i in l1: count+=1 return None a=my_len() print(a)
3.不写return
def my_len(): l1=["sbc",1,2,3] count=0 for i in l1: count+=1 ret=my_len() print(ret)
4.return 单个值 返回一个值
def my_len(): l1=["sbc",1,2,3] count=0 for i in l1: count+=1 return count a=my_len() print(a)
5.return 多个值 返回多个值
def my_len(): l1=["sbc",1,2,3] return l1,'a',2,5 ret=my_len() print(ret) #结果是个元组(['sbc', 1, 2, 3], 'a', 2, 5) ret1,ret2,ret3,ret4=my_len() print(ret1,ret2,ret3,ret4) #多个接收值,分别赋值['sbc', 1, 2, 3] a 2 5
三:函数的传参方式(实参和形参)
从实参的角度分析,有三种形式:1.按位置(一一对应,少一个都不行) 2.按关键字 3.位置和关键字混合(位置参数一定在前,关键字在后)。
1.1按位置:20,18就是实参,x,y是形参,对应关系即x就是20,y就是18
复制代码 def func(x,y): if x>y: return True else:return False a=func(20,18) print(a)
1.3混合: 关键字参数永远在位置参数后面。
def func(a,b,x,y):
pass
func(15,25,y=20,x=18)
1.4三元运算法则:如果x>y z=x,否则z=y
def func(x,y):
z=x if x>y else y
return z
print(func(20,18))
2.形参:形式参数
从形参的角度分析:有两种形式
1.按位置 2.默认
默认参数:y的值始终是20
def func(x,y=20):
pass
func(18)
实例:输入姓名,在文本中显示姓名和性别,如果姓名中含有’芳’,性别显示女
def func(name, sex="男"): with open("D:\lianxi\python\day2\ban","a",encoding='utf-8') as f: f.write('{} {} '.format(name,sex)) while True: m=input("请输入姓名:") if "芳" in m: func(m,sex="女") #结果:小鉿 jerd 男 小芳 女 else: func(m)