zoukankan      html  css  js  c++  java
  • 只有我一个能看懂的乱乱的函数基础知识复习

    首先函数是什么呢????
    函数封装了一个功能,需要的时候就去调用就好,
    def ret_demo(dic):#1.先定义一个函数
    while True:#3.开始执行while循环
    if len(dic) > 3:#4.判断长度是否大于三,
    print("长度超了")
    return False#5.返回一个 False,return是结束标志
    break #return后面的不执行
    else:
    print('长度刚刚好')

    ret = ret_demo([1,2,3,4,5])#2.函数的调用,传入参数
    print(ret)#最后输出
    def ret_demo1():
    return 1,2,3,4#输出(1,2,3,4)
    def ret_demo2():
    return 1 #只返回1
    def ret_demo3():
    return 1,#返回元组的形式(1,)
    def ret_demo4():
    return (1,2,3)#返回(1,2,3)
    def ret_demo5():
    return (1,2,3),4#((1,2,3)4)
    def ret_demo6():
    return 'a','b','c',56 #('a','b','c',56 )
    def ret_demo7():
    return (1,2,3),(1,2),[33,44],{'name':'jx','age':12}
    #( (1,2,3),(1,2),[33,44],{'name':'jx','age':12})
    def ret_demo8():
    return {1,2,3} #竟然返回的是字典
    def ret_demo9():
    return [1,2,3]#返回的是列表
    print(ret_demo1())
    print(ret_demo2())
    print(ret_demo3())
    print(ret_demo4())
    print(ret_demo5())
    print(ret_demo6())
    print(ret_demo7())
    print(ret_demo8())
    print(ret_demo9())
    def trans_para(a,b):
    print(a,b)
    trans_para(20,30,2)#这是错误的,按位置传参,那个2没有参数来接收

    b,关键字传参。
    def trans_para(a,b):
    print(a,b)
    trans_para(b=30,a=20)#按关键字传参,位置前后不重要

    c,混合参数(位置参数必须在前面)

    def trans_para(a,b,c):
    print(a,b,c)
    trans_para(10,20,c=40)

    d,默认参数。
    def trans_para(a,b,c="a"):
    print(a,b,c)
    trans_para(10,20,c=40) 10,20,40
    trans_para(10,20)#10,20,a

    e,不定长参数*args,**kwargs。
    def trans_para(*args,**kwargs):
    print(args,type(args))
    print(kwargs,type(kwargs))
    trans_para("jinxin",12,[1,2,3,4],[3,4,],(1,4,7),{"a":"123","c":456},country="china")
    #"jinxin",12,[1,2,3,4],[3,4,],(1,4,7),{"a":"123","c":456}
    #country="china"
    def foo(*args,**kwagrs):
    print('args=',args)
    print('kwargs=',kwagrs)
    print('------------------')
    if __name__=='__main__':#用来做输出的
    foo(1,2,3,4)
    foo(a=1,b=2,c=3)
    foo(1,2,3,4,a=1,b=2,c=3)
    foo('a',1,None,a=1,b='2',c=3)#*kwargs用来接收关键字传参其余类型都由*args接收
    *args和**kwargs是python中的可变参数,*args表示任何多个无名参数,他是一个tuple
    **kwargs表示关键字参数,他是一个dict.并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs
    前,像foo(a=1,b=2,c=3,a,1,None)这样调用的话,会提示语法错误


    创建字典
    def kw_dict(**kwargs):
    return kwargs
    print(kw_dict(a=1,b=2,c=3)=={'a':1,'b':2,'c':3})
    dict(a=1,b=2,c=3)
    print(dict)
    def extendList(val,list=[]):
    list.append(val)
    return list
    list1 = extendList(10,)
    print('list1=%s'%list1)#[10,]

    list2 = extendList(123,[])#[123]
    print('list2=%s'%list2)

    list3 = extendList('a')
    print('list3=%s'%list3)#[10,'a']

    def extendList(val,list=[]):
    list.append(val)
    return list
    list1 = extendList(10,)
    list2 = extendList(123,[])
    list3 = extendList('a')

    print('list1=%s'%list1) #[10,'a']
    print('list2=%s'%list2) #[123]
    print('list3=%s'%list3) #[10,'a']
  • 相关阅读:
    PHPStrom 转 VSCode 折腾记录(配置分享)
    Ubuntu 17.10/18.04使用内置指纹识别(联想T440内置Synaptics Validity Sensors)
    How to Enable Fingerprint Login In Ubuntu 19.10, 19.04
    RESTful API 中的 Status code 是否要遵守规范
    RESTful API定义及使用规范
    Google protocol buff使用
    linux shell 值coredump suid_dumpable和 gdb解析coredump文件
    linux shell 之流程控制 if if else while
    error while loading shared libraries: libXXXX.so: cannot open shared object file: No such file or directory
    Excel表格写入操作函数 C++
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/7289776.html
Copyright © 2011-2022 走看看