zoukankan      html  css  js  c++  java
  • 函数2

    一些例子:

    def test1():
    print('in the test1')       代表test1这个函数的主逻辑,如果执行,会先print,然后再return
    return 0
    print('test end')           不管写什么都不运行了,如果以后有程序需要写着3行代码,直接test1()即可
    x = test1()                   return的那个值赋值给了x
    print(x)


    def test(x,y):               这里面的xy叫做形参
          print(x)       
          print(y)

    第一种:

    test(1,2)                    1 2叫做实参

    第二种:

    x=1                            定义了一个内存对象x在引用他
    y=2
    test(y=y,x=x)             第一个y代表test里面的形参,后面那个y代表第上面行指定的内存对象

    第三种:

    test(y=1,x=2)            当时这种情况的时候,实参的顺序与形参的顺序是没有关系的

    第四种:

    test(1,y=2)        

    这种情况比较复杂,首先第一个非定义x=..or y=..的常数是定义给x的,如果既有关键字调用,又有位置调用,则按照位置的来,比如第一个是x=1,然后2,则他先赋给x=1,然后x=1又为2,就会报错,所以关键字调用不能写在位置调用的前面,也就是说比如关键字a b c d,如果想把d用关键字调用,则前面的a b c一定要是位置调用。

    ③默认参数

    def test(x,y=2):                  默认y=2,如果后面不赋值也可以print出来
    print(x)
    print(y)

    test(1)                               这一行其实是代表着给x赋值了1

    所以最终的结果是print出来1,2

    默认参数的特点:调用函数的时候,默认参数可有可无,并非必须传递的,如果没有传递,用默认值,如果有传递,则用传递值。

    用途:下载,一键下载

    ⑤当实参个数不确定时:


    def test(*args):
    print(args)
    test(1,2,3,4,5,5)             当你的实参不确定的时候,可以对形参前面加*号
    test(*[1,2,4,5,5])             args=tuple[1,2,4,5,5] 将args变成一个元组

    这两个的运行结果是一样的,结果都为一个元组(1, 2, 3, 4, 5, 5)

    def test1(x,*args):
    print(x)
    print(args)
    test1(1,2,3,4,5,6,7)

    这个则会将1赋给x,然后后面的数作为一个元组

    如果想输出一个字典怎么办:

    **kwargs:把N个关键字参数,转换成字典的方式

    def test2(**kwargs):
    print(kwargs)
    print(kwargs['name'])
    print(kwargs['age'])
    print(kwargs['sex'])

    test2(name='alex',age=8,sex='F')
    test2(**{'name':'alex','age':8,'sex':'F'})     注意,这一行一定要跟上一一对应

    输出结果:

    {'name': 'alex', 'age': 8, 'sex': 'F'}
    alex
    8
    F

    倒数第二个例子-------分割线---------------

    def test3(name,**kwargs):
    print(name)
    print(kwargs)

    test3('alex',age=18,sex='m')

    在这个例子中,alex会赋值给name,后面两个则形成字典。

    最后一个例子-------分割线---------------

    def test4(name,age=18,*args,**kwargs)
    print(name)
    print(age)
    print(kwargs)
    print(args)
    test4('alex',2,3,4,sex='m',hobby='tesla')

    在这里面需要注意的有:‘’alex'赋值给name,2赋值给age,3,4形成元组,后面两个形成字典,如果里面没有2,3,4则args输出为(),因为args不能接收字典的形式,如果后面加了一个age=18,则前面不能有2,3,4

     

  • 相关阅读:
    Alpha冲刺(2/10)——2019.4.25
    Alpha冲刺(1/10)——2019.4.24
    Alpha冲刺——序言篇(任务与计划)
    团队作业第六次—团队Github实战训练
    团队第四次作业答辩——反思与总结
    团队作业第五次—项目系统设计与数据库设计
    项目Alpha冲刺--6/10
    项目Alpha冲刺--5/10
    项目Alpha冲刺--4/10
    项目Alpha冲刺--3/10
  • 原文地址:https://www.cnblogs.com/zaizaiaipython/p/7778155.html
Copyright © 2011-2022 走看看