• python之函数(function)


    #今天来学习一下函数,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='55666@126.con',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)
  • 相关阅读:
    2017.12.07 postgresql使用with recursive完成迭代查询
    jackson/fastJson boolean类型问题
    postgres sql merge upsert
    postgresql 清除数据并清除自增ID
    elasticsearch7.2深度分页实现(查询全部数据)
    SpringBoot集合SpringSecurity流程及代码详解和导图详解
    SpringBoot整合JWT框架及JWT介绍
    浅析JWT中token过期后解析报错ExpiredJwtException的解决及过期之后如何进行后续业务处理
    SpringSecurity整合JWT一些异常了解及处理io.jsonwebtoken.SignatureException: JWT signature does not match locally computed signature解决及UnsupportedJwtException:Signed Claims JWSs are not supported
    浅析request.getInputStream()得到的流及接参流程
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/6417829.html
Copyright © 2020-2023  润新知