python 基础知识拾遗2(函数)
关键参数
正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。
#_*_encoding:utf-8_*_ def stu_register(name,age,country,course): print("----注册学生信息------") print("姓名:",name) print("age:",age) print("国籍:",country) print("课程:",course) stu_register("王山炮",22,"CN","python_devops") stu_register("刘老根",25,"US",course="linux") #stu_register("刘老根",25,"linux",country="US") #编辑出错,必须按定义的顺序进行传值 def stu_register2(name,age,course,country="CN"): print(country) ''' def stu_register2(name,age,country="CN",course): #编辑出错,默认值参数必须在非默认值参数后面 print(country) '''
非固定参数
1.一个参数多个不固定值使用 *
def stu_register3(name,age,*args): # *args 会把多传入的参数变成一个元组形式 print(name,age,args) stu_register3("Alex",22) #输出 #Alex 22 () #后面这个()就是args,只是因为没传值,所以为空 stu_register3("Jack",32,"CN","Python") #输出 # Jack 32 ('CN', 'Python')
2.多个不固定参数使用 **
def stu_register4(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式 print(name,age,args,kwargs) stu_register4("Alex",22) #输出 #Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空 stu_register4("Jack",32,"CN","Python",sex="Male",province="ShanDong") #输出 # Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}
递归函数调用(二分查找)
#_*_encoding:utf-8_*_ ''' 二分查找法,在一个数组中找到对应的值 ''' def bs(source,num): mid = len(source)//2 if (num == source[mid]): return ("找到"+str(num)) elif(mid==1): return ("没有找到"+str(num)) elif(num>source[mid]): print("source[mid:]:",source[mid:],"source[mid]:",source[mid],"num:",num) return bs(source[mid:],num) elif(num<source[mid]): print("source[:mid]:",source[:mid],"source[mid]:",source[mid],"num:",num) return bs(source[:mid],num) s=[-5,-3,-1,0,4,6,7,8,12,15,32,45,48,100,123,145,167,1000,1334,1574,2567,3445] num = 44 print(bs(s,num)) ''' if(reslt): print("在列表",s,"中找到",num) else: print("在列表",s,"中没有找到",num) '''
浙公网安备 33010602011771号