函数
一。函数的初识
比如:我们测量一个字符串‘asdfghj’的长度,但是不让用len()的方法
s = 'asdfghj' count = 0 for i in s: count += 1 print(count)
要是测量其他的字符串的长度就要再次编写这些相似的代码,重复性强,可读性差,此时我们可以引入函数概念。
二。函数的定义与调用
def my_len(): # def 关键字,定义函数 空格 函数名(变量) s = 'asdfghj' count = 0 for i in s: count += 1 print(count) my_len() #执行此函数
三。函数的返回值(return)
return
1.遇到return,此函数结束,不再继续运行(类似于循环中的break)
2.return有四种情况
1)不写return 返回 None
def my_len(): s = 'asdfghj' count = 0 for i in s: count += 1 ret = my_len() print(ret) #输出结果 None
2)return None 返回 None
def my_len(): s = 'asdfghj' count = 0 for i in s: count += 1 return None ret = my_len() print(ret) #输出结果None
3)return 一个值 返回 此单个值
def my_len(): s = 'asdfghj' count = 0 for i in s: count += 1 return count ret = my_len() print(ret) #输出结果:7
4)return 多个值 返回 将多个值包在元组内,返回给调用者此元组
def my_len(): '''返回多个值''' return count,1,3,'alex',8 ret = my_len() print(ret) #输出结果:(7, 1, 3, 'alex', 8)
# 用多个值接收 def my_len(): return 1,['a','b'],3,4 ret1,ret2,ret3,ret4 = my_len() print(ret1,ret2,ret3,ret4) # 输出结果:1 ['a', 'b'] 3 4
四。参数
实参与形参
参数还有分别:
我们调用函数时传递的这个“hello world”被称为实际参数,因为这个是实际的要交给函数的内容,简称实参。
定义函数时的s1,只是一个变量的名字,被称为形式参数,因为在定义函数的时候它只是一个形式,表示这里有一个参数,简称形参。
传递多个参数
参数可以传递多个,多个参数之间用逗号分割。
1.实参
从实参的角度:
1)按位置传参
def my_line(x,y): '此时x = 5 , y = 10 ' max = x if x > y else y return max #调用 ma = my_line(5,10) print(ma) #输出结果:10
2)按关键字传参
def my_len(x,y): #x = 5 ,y = 20 max = x if x > y else y return max #调用 ma = my_len(y=20,x=5) print(ma) #输出结果:20
3)混合传参 关键字参数永远在位置参数后面
def my_len(x,y): #x = 5,y = 15 max = x if x > y else y return max #调用 ma = my_len(5,y=15) print(ma) #输出结果:20
2.形参
1)位置参数
def mymax(x,y): #此时x=10,y=20 the_max = x if x > y else y return the_max ma = mymax(10,20) print(ma) #输出结果:20
2)默认参数
def fa(name,sex='男'): with open('name_list','a',encoding='utf-8') as f: f.write('{},{} '.format(name,sex)) while 1: name = input('请输入姓名:') if '姐' in name: sex = input('请输入性别:') fa(name,sex) else: fa(name)