python之函数初始
案例一
s='dhclvamvmzkfisncnmlwq'
count=0
for i in s:
count+=1
print(count) #21
案例二
l=[1,2,3,4]
count=0
for i in l:
count+=1
print(count) #4
函数的使用必须遵循一个原则:先定义后调用
1. def 关键字 函数名:
def 函数名():
函数体
def my_len():
#函数体
l=[1,2,3,4]
count=0
for i in l:
count+=1
print(count) #4
my_len() #执行函数 ,函数名()
函数体:就是函数被执行之后要执行的代码
函数的优点:(1)减少代码的重复率。
(2)增强代码的阅读性
2.函数的到底是什么
函数:对代码块和功能的封装和定义
s='asdfghjklmnbvcxz' print(len(s)) #16
def my_len():
#函数体
s = 'dhclvamvmzkfisncnmlwq'
count=0
for i in s:
count+=1
print(count)
my_len()#21
函数的调用过程:
![]()
3.函数的返回值 return
1).函数中如果遇到return,则直接结束函数
2).给函数的执行者返回值。
return None
def func1():
print(111)
print(222)
return
print(333)
func1() #111 222 func1()整体是函数的执行者
3)return 单个值 原封不动的返回
def func1():
a=1
b=2
c=a+b
d='alex'
e=[1,2,3]
return e
ret=func1()
print(ret,type(ret)) #[1, 2, 3] <class 'list'>
4)return 多个值 返回一个元组,所有的返回值作为元组的每一个元素
def func1():
a=1
b=2
c=a+b
d='alex'
e=[1,2,3]
return c,d,e
ret=func1()
print(ret,type(ret)) #(3, 'alex', [1, 2, 3]) <class 'tuple'>
工作中,函数中尽量不要出现print
def my_len():
#函数体
s='asncmxzloeruty'
count=0
for i in s:
count+=1
return count
print(my_len()) #14
总结一下:
1.遇到return,函数结束,return下面的(函数内)的代码不会执行。
2.return 会给函数的执行者返回值。
如果return后面什么都不写,或者函数中没有return,则返回的结果是None
如果return后面写了一个值,返回给调用者这个值
如果return后面写了多个结果,,返回给调用者一个tuple(元组),调用者可以直接使用元组的解构获取多个变量。
4.函数的参数
参数,函数在调用的时候指定具体的一个变量的值.就是参数.语法:
def 函数名(参数列表):
函数体
1.形参
写在函数声明的位置的变量叫形参,形式上的一个完整.表示这个函数需要xxx
2.实参
在函数调用的时候给函数传递的值.加实参,实际执行的时候给函数传递的信息.表示给函数xxx
3.传参
函数的传参就是函数将实际参数交给形式参数的过程.
(1)实参
l1=[1,2,3]
s='asncmxzloeruty'
def my_len(argv): #argv形式参数
#函数体
count=0
for i in argv:
count+=1
return count
print(my_len(l1)) #3 my_len(l1)函数的执行者(实参),实际的参数
1)位置参数,必须要按顺序一一对应
def fun1(x,y):
print(x,y)
fun1(1,2) #1 2
习题:2个函数:一个函数求和;另一个函数将大的数给我返回
a.函数的求和
def sum1(x,y):
return x+y
a=3
b=6
print(sum1(a,b)) #9
b.将大的返回
def compare(x,y):
if x>y:
return x
else:
return y
print(compare(100,101)) #101
c.三元运算:只针对于简单的if else这样的结构,才可以使用
def compare(x,y):
# if x>y:
# return x
# else:
# return y
# ret=x if x>y else y
# return ret
return x if x>y else y
print(compare(100,101))
2)关键字传参,可以不按照顺序,但是必须一一对应
def fun1(x,y):
return x+y
print(fun1(y=100,x=99)) #199
3)混合传参:关键字参数一定要在位置参数后面
def fun1(a,b,n,x,y):
return x+y
name='alex'
print(fun1(100,200,name,y=100,x=99)) #199
(2)形参角度:
1).位置参数,位置参数其实与实参角度的位置参数是一样的,就是按照位置从左至右,一一对应
2).关键字参数,一一对应
def date(sex, age, hobby):
print("拿出手机")
print("打开陌陌")
print('设置筛选条件:性别: %s,年龄:%s,爱好:%s' %(sex, age, hobby))
print("找个漂亮的妹子")
print("问她,约不约啊!")
print("ok 走起")
date('女','25~30','唱歌')
习题:
写一个函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
def func(arg):
if len(arg) > 2:
return arg[0], arg[1]
print(func([1, 2, 3, 4]))
print(func([1, 2]))
3)默认值参数
默认参数设置的意义:普遍经常使用的
def stu_info(name, age, sex='男'):
print("录入员工信息")
print(name, age, sex)
print("录入完毕")
stu_info("张飞", 22)


浙公网安备 33010602011771号