美文网首页
python函数

python函数

作者: 133sheiya | 来源:发表于2019-06-05 17:27 被阅读0次
    #coding=utf-8
    #!/usr/bin/python3
    

    python函数

    函数代码块以def关键字开头 后接函数名 及圆括号 必须以:开头

    在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。

    1.不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。

    2.可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

    python 函数的参数传递:

    1.不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。

    2.可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

    python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象

    简单函数的定义及调用

    1.传递参数为不可变类型

    def changeInt(a):
        a = 10
        pass
    
    b = 2
    
    changeInt(b)
    
    print b #此时输出仍为2
    

    2.传递参数为可变类型 数组,字典

    def changeme(mylist):
        mylist.append([1,2,3,4])
        print("函数内取值:%s" %mylist) #函数内取值:['1', '2', '3', [1, 2, 3, 4]]
        pass
    
    #传入字典 ,数组 是同一个引用
    abc = ["1","2","3"]
    changeme(abc)
    
    print("函数外部输出:%s" % abc) # 函数外部输出:['1', '2', '3', [1, 2, 3, 4]]
    

    3.指定参数名调用

    def printInfo(name,age):
        print("名字:",name)
        print("年龄:",age)
        pass
    
    #指定参数名后。不需要按顺序
    printInfo(age = 50, name = "runoob")
    

    4.参数具有默认值(有默认值的参数必须放在所有参数的最后,否则会报错)

    ## 默认参数
    def printInfoc(name,age=35):
        print ("年龄:%d"%age)
        print ("姓名:%s"%name)
        pass
    printInfoc(name="333") # 没赋值age 则使用默认值 
    
    

    5.不定长参数

    def printInfoD(arg1,*vartuple):
        print("输出:")
        print arg1
        print vartuple
        print type(vartuple) # tuple
    
    #一个*传递的是元祖
    printInfoD(30,40,50)
    printInfoD(30,(30,40,50))
    
    def printInfoF(arg1,**vartuple):
        print vartuple #此时参数为字典
    
    printInfoF(11,a=1,b=2) 
    

    6.创建匿名函数

    sumc =lambda arg1,arg2:arg1 + arg2
    
    
    print(sumc(30,50)) 
    
    def sumD(arg1,arg2):
        total = arg1 + arg2 
        pass# pass语句有没有都可以
        return total
        pass # pass语句有没有都可以
    
    total = sumD(10,20)
    print total
    

    7.global关键字的使用

    num = 10 #此为全局变量
    # 当内部作用域想修改外部作用域的变量时 可以使用global
    def fun1():
        global num # 表示引用的是全局变量
        print num  #10
        num = 123
        print num  #123
    fun1()
    print num # 123
    

    8.如果想修改嵌套作用域,需要使用nonlocal关键字

    # def  outer():
    #   num = 10
    #   def inner():
    #       nonlocal num 
    #       num  = 100
    #       pass
    #   inner() # 调用内联函数
    #   print(num) # 输出100
    #   pass
    # outer()
    

    9.将全局变量当作参数传递

    a = 10 
    def  test(a):
        a = a + 1
        print a 
        pass
    
    test(a)
    

    相关文章

      网友评论

          本文标题:python函数

          本文链接:https://www.haomeiwen.com/subject/ffysxctx.html