zoukankan      html  css  js  c++  java
  • day9

    函数的初始:

    def 关键字,函数名具有描述性

    def my_len():

      #函数体

    my_len() #执行函数 函数名()

    func1() : 整体是函数的执行者

    函数的优点:

    1.减少代码的重复性

    2.增强代码的阅读性

    3.函数最主要的目的:封装一个功能

    函数的返回值:return

    1.函数中如果遇到return,则直接结束函数

    2.给函数的执行者返回值

      return:只有一个return,返回的是none

      return后面加单个值,这个值本身是什么数据类型,就返回什么类型

      return后面加多个值,是以元祖的形式返回,所有的返回值是元祖的每一个元素

    注意:工作中函数尽量不要出现print

    def func1():
        print(111)
        print(222)
        return
        print(333)
    priint(func1())
    

      最后打印出111,222,而因为return的出现,函数结束,333将不会被打印

    函数的参数分为两个:

    实参:

      位置参数:必须要一一对应

    l1 = [1, 2, 3]
    s = 'skhdakhd'
    def my_len(argv):      #argv形式参数
        count = o
        for i in argv:
            count += 1
        return count
    print(my_list(l1))      #3  函数的执行者实际的参数
    

      关键字参数:可以不按照顺序,但是必须一一对应

    def compare(x,y):
        return x if x > y else y
    print(compare(x = 10,y = 20))
    

      x,y分别对应了值

    def sum(x,y):
        return x+y
    a = 3
    b = 6
    print(sum(a,b))
    以上的代码是对的,运行结果是9,但是如果写成下面的代码就是错的
    def sum(x,y): return x+y print(sum(a=3,b=6))
    这行代码则是把a,b定义成了关键字参数,程序如果在上面只找到了x,y找不到a,b那么,程序将会以为是多出了两个参数

     混合参数:关键字参数一定要在位置参数的后面

    def func1(a,b,n,x,y)
        return x+y
    name = 'alex'
    print(func1(100,200,name,y = 10,x = 20)
    

     形参:

    位置参数:按照顺序,一一对应

    def function(x,y,z):
        print(x,y,z)
    func(1,2,3)  

    默认参数:给其传值,将原默认的参数覆盖掉,不传值不报错,使用默认值

    应用场景:不经常改变的参数,但是一直在用

    def func1(x,y,a=666):
        print(x,y,a)
    func1(1,2,)    #打印出(1,2,666)
    func1(1,2,333)   #打印出(1,2,333)

    默认参数的陷阱:

    默认参数若是可变的数据类型,他始终使用的是一个

    def func1(x,l1 =[]):
        l1.append(x)
        return l1
    ret = func1(1)
    print(ret,id(ret))
    ret1 = func1(100)
    print(ret1,id(ret1)
    

      

     

  • 相关阅读:
    lower_bound/upper_bound example
    Counter Mode ( CTR )
    85. Maximal Rectangle
    for_each(c++11)
    Lowest Common Ancestor in a Binary Tree
    python--基础学习(五)参数位置传递、关键字传递、包裹传递及解包裹(*args与**kwargs)
    Python的方法解析顺序(MRO)
    pycharm配置总结
    Python中内置数据类型list,tuple,dict,set的区别和用法
    进程号查找
  • 原文地址:https://www.cnblogs.com/beriuta/p/9483023.html
Copyright © 2011-2022 走看看