一.函数是什么?
具备某项功能的工具
举例:电烧水壶可以把冷水变成热水(输入冷水,输出热水)
要想使用水壶,需要事先准备好,然后拿来就用且可以重复使用;
===要想用函数,需要先定义,再使用,以后可以重复使用===
二.函数的分类
1.内置函数
python解释器已经为我们定义好了的函数即内置函数。对于内置函数,我们可以拿来就用而无需事先定义,如len(),sum(),max()
注:掌握常用的内置函数。
2.自定义函数
内置函数所能提供的功能是有限的,这就需要我们自己根据需求,事先定制好我们自己的函数来实现某种功能,
以后,在遇到应用场景时,调用自定义的函数即可
三.定义函数
#语法
def 函数名(参数1,参数2,参数3,...):
'''注释'''
函数体
return 返回的值 (返回值可以是任意类型)
举例:login.py
def login(name,password):
'''
检查用户名,密码
'''
if name == 'tom' and password="123":
return True
else:
return False
login_res = login('tom','456')
print(login_res) # False
# 注意此程序执行顺序,先定义,再调用
函数在定义阶段都干了哪些事?
#只检测语法,不执行代码
============= 函数调用 ===============
①调用: 函数名加括号
②返回值:
无return->None
return 1个值->返回1个值
return 逗号分隔多个值->元组
四.函数的形式
1.有参参数
2.无参函数
#定义阶段
def tell_tag(tag,n): #有参数
print(tag*n)
def tell_msg(): #无参数
print('hello world')
#调用阶段
tell_tag('*',12)
tell_msg()
3.空函数(设计代码结构)
def auth(user,password):
'''
auth function
:param user: 用户名
:param password: 密码
:return: 认证结果
'''
pass
五.函数的参数
1.形参与实参:形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定.
2.实际应用:
1.位置参数:
def tom(x,y):
return x+y
tom(1,3)
2.关键字参数:
def tom(x,y):
c = x+y
return c
tom(1,y=4) # 关键字参数必须在位置参数后边
3.默认参数:
def tom(x=1,y):
d = x*y
return d
tom(3) # 此时x的值是默认的1,y=3
tom(x=2,y=3) # 覆盖默认值
4.可变长参数:掌握*args,**kwargs (需要了解*号的打包,解包的功能)
def tom(x,y,*args,**kwargs):
print(x)
print(y)
print(args)
print(kwargs)
tom(1,2,3,4,5,name='tom',age=34)
##### 执行结果 #########
1
2
(3, 4, 5)
{'name': 'tom', 'age': 34}
六.练习
1.统计下边字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,输出格式为字典类型
string = "fad56aad *%88? "
2.学习二分查找
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
题目:my_list = [2,78,3,34,56,23,69,45,43,31,6,4,9,10,38,67,78],使用二分查找求出列表中,是否存在89, 45,47三个数字