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)
'''

 

posted on 2018-02-08 16:39  星际无垠  阅读(92)  评论(0)    收藏  举报