#今天来学习一下函数,function# 定义一个函数的时候,函数不会被执行,只有调用函数,函数才会执行## 定义函数# # 1、def是创建函数的关键字,创建函数# # 2、函数名# # 3、()# # 4、函数体# # 5、返回值### try:# 扑捉这段代码的执行# except:# 如果失败,则执行这里的语句## else:# 如果成功,则执行这里的语句## 执行函数## 函数名()## 类似这样定义一个函数### def 取快递():### xxxxx# xxxxx# xxxxx #函数遇到return后就不会继续执行后面的语句 # def my_first_function ():# username = ‘Bob‘# _username = input(‘Input name:‘)# if _username == username:# return "Welcome login"# else:# return "Username is Invalid"## result = my_first_function()# print(result) #如果在函数中没有定义任何一个return,则python会给一个默认的返回值,none# def f2():# print("hi,everybody")# ret = f2()# print(ret) #学习一下形参和实参,这里要注意,形参是定义函数的时候定义的,实参是调用函数的传给函数的,实参和形参要一一对应,且顺序要一致,第一个实参对应第一个形参,第二个#实参对应第二个形参,以此类推# def send(address,content,name): #这里是形参# print(‘send to‘,address,‘成功‘,‘内容是‘,content,‘名字是‘,name)# return True# while True:# em = input("input address:")# result = send(em,‘SB‘,‘Bob‘) #这里是实参# if result == True:# print(‘发送成功‘)# else:# print(‘发送失败‘) #函数的默认参数,如果形参有三个参数,而其中有一个是默认参数,则实参只需要传2个或者3个都可以,如果是2个,则第三个参数用默认值来显示,如果传三个参数,则第三个参数#用传递的参数代替,这里有个重点,就是如果要设置默认参数,则必须要放在形参的最后面,可以有多个默认的形参,但是都要放在最后面 #这里是定义了三个参数,其中name这个参数是默认参数,有默认值,但是实参传了三个参数,所以就没有使用默认值# def send(address,content,name=‘Bob‘):# print(‘send to‘,address,‘成功‘,‘内容是‘,content,‘名字是‘,name)# return True# while True:# em = input("input address:")# result = send(em,‘SB‘,‘ale‘)# if result == True:# print(‘发送成功‘)# else:# print(‘发送失败‘) #这里是定义了三个参数,其中name这个参数是默认参数,有默认值,但是实参传了两个个参数,所以name就使用了默认参数# def send(address, content, name=‘Bob‘):# print(‘send to‘, address, ‘成功‘, ‘内容是‘, content, ‘名字是‘, name)# return True# while True:# em = input("input address:")# result = send(em, ‘SB‘)# if result == True:# print(‘发送成功‘)# else:# print(‘发送失败‘) #指定参数,前面是默认实参和形参的是按照顺序一一对应的,下面可以指定哪一个形参对应哪个实参,不需要按照顺序一一对应# def send(address, content):# print(‘send to‘, address, ‘成功‘, ‘内容是‘, content)# return True# while True:# em = input("input address:")# result = send(address=‘[email protected]‘,content=em)# if result == True:# print(‘发送成功‘)# else:# print(‘发送失败‘) # *号,表示可以接受n个实参,然后放在把所有的实参放到一个叫args的tuple中# def f1(*args):# print(args)# print(type(args))# f1(11,22,33,‘aaad‘,‘bbbb‘) #这里也可以传一个列表进去,但是把这个列表当做元组的一个元素 # list1 = [11,22,33,44]# list2 = [66,77,8,8]# def f1(*args):# print(args)# print(type(args))# f1(list1,list2) #如果传递的实参的前面有个*号,我们来看下效果,不论传递的是list和str,相当于一个for循环,把list中或者字符串的每个元素当做形参的一个元素# name = ‘1234‘# list1 = [11,22,33,44]# def f1(*args):# print(args)# f1(list1)# f1(*list1)# f1(*‘abcd‘)# f1(*name) #前面的形参是有一个*号,其实还可以形参前也可以有两个*号,那么在调用函数的时候传递实参的时候要用dict的方式传递实参,不然会报错,这里要注意下传递形式,传参的使用要用#=号# def f1(**args):# print(args)# print(type(args))## f1(n1=‘cccc‘,n2=‘dddd‘) #直接传递一个dict进去,如果用这样的方式,是把整个dict当做一个元素# dict1 = {‘name‘:‘Bob‘,‘age‘:12,‘job‘:‘it‘}# def f1(**args):# print(args)# print(type(args))## f1(k=dict1) #如果实参中有两个*号,则把dict中的每个元素当做一个元素传递给形参# dict1 = {‘name‘:‘Bob‘,‘age‘:12,‘job‘:‘it‘}# def f1(**args):# print(args)# print(type(args))## f1(**dict1) #总结下函数传参# 1、普通参数,严格按照输入的顺序,将实参和形参一一对应# 2、默认参数,必须放在形参的最后# 3、指定参数,将实际参数赋值给形参# 4、动态参数# 4-1、* 默认将传入的参数,全部放到列表中,如果传实参的加一个*,会对list或者字符串做一个for循环,把把实参的每一个元素当做一个元素传递给形参# 4-2、**默认将传入的参数,全部放到字典中,如果传实参的加一个**,会对dict做一个for循环,把把实参的每一个元素当做一个元素传递给形参# 5、万能参数,就必须下面的列子,会自动把list或者str的参数传递给args,把dict传递给kwargs,且在写形参的时候,一定要把一个*args放在前面,**kwargs# 放在后面 # def f1(*args,**kwargs):# print(args)# print(kwargs)### f1(11,22,33,44,k1=‘bob‘,k2=‘ale‘) #其中python中的另外一个格式化输出就用到万能传参的方法# def format(self, *args, **kwargs): # known special case of str.format # s = ‘i am {0},age is {1}‘ .format(‘bob‘,34)# print(s)## s = ‘i am {0},age is {1}‘ .format(*[‘bob‘,34])# print(s) # s = ‘i am {name},age is {age}‘ .format(name=‘Bob‘,age=‘23‘)# print(s) # dict = {‘name‘:‘Bob‘,‘age‘:12}# s = ‘i am {name},age is {age}‘ .format(**dict)# print(s)
时间: 2024-10-21 06:26:37