• python基础之函数--返回值和参数


    函数

    一、为何要有函数?

    不加区分地将所有功能的代码垒到一起,问题是:

    1、代码可读性差

    2、代码冗余

    3、代码可扩展差

    如何解决?

    函数即工具,事先准备工具的过程是定义函数,拿来就用指的就是函数调用

    结论:函数使用必须是:先定义,后调用

    二、函数的使用方法

     1 python中函数定义方法:
     2  
     3 def test(x):
     4     "The function definitions"
     5     x+=1
     6     return x
     7      
     8 def:定义函数的关键字
     9 test:函数名
    10 ():内可定义形参
    11 "":文档描述(非必要,但是强烈建议为你的函数添加描述信息)
    12 x+=1:泛指代码块或程序处理逻辑
    13 return:定义返回值
    
    
    调用运行:可以带参数也可以不带
    函数名()

    1、函数的返回值

    当一个函数没有使用return,显示定义返回值时,朋友通红解释器会返回None

    2、函数的参数和使用

    ===================》part1

    位置参数:按照从左到右的顺序依次定义的参数

    def foo(x,y):
        print(x)
        print(y)

    按照位置定义的形参,必须被传值,多一个不行,少一个不行

    #foo(1,2,3)

    按照位置定义的实参,与形参一一对应

    #foo(1,2,3)

    ===================》part2

    关键字参数:实参在定义时,按照key=value形式定义

    def foo(x,y):
        print(x)
        print(y)
    foo(y=10,x=1)

    关键字参数可以不用像位置参数那样一一对应

    注意事项:

    a、位置实参必须在关键字实参的前面

    b、实参的形式既可以用位置实参又可以是关键字实参,但是一个形参不能重复传值

    ===================》part3

    默认参数:在定义函数阶段,就已经为形参赋值,定义阶段有值,调用阶段可以不用传值

    # def func(x,y=10):
    #     print(x)
    #     print(y)
    
    
    # func(1,20)
    # func(1)

    实参分为:位置实参和关键字实参       形参分为位置形参和默认参数

    #形参的应用:值经常变化的需要定义成位置形参,
    # 值大多数情况下都一样,需要定义成默认参数def register(name,age,sex='male'):     print(name,age,sex)register('alex',1000)register('wupeiqi',9000)register('yuanhao',10000)register('王铁蛋',10000,'female')

    默认参数需注意的问题:

    a、必须放在位置形参的后面

    b、默认参数通常要定义成不可变类型

    c、默认参数只在定义阶段被赋值一次

    x=10
    def func(name,age=x):
        print(name)
        print(age)
    x=20
    
    func('egon')

    ===================》part4

    可变长参数:可变长指的是实参的个数不固定

    按位置定义的可变长度的实参:*

    按关键字定义的可变长的实参:**

    按位置定义:
    def
    func(x,y,*args): #x=1,y=2,args=(3,4,5,6) print(x,y) print(args) func(1,2,3,4,5,6)

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

    #
    # def func(x,y=2,z=1):
    # print(x,y,z)
    #
    #
    # func(*('a','b','c')) #func('a','b','c')

    按关键字定义;
    def func(x,y,**kwargs):           #x=1,y=2,kwargs={'a':1,'b':3,'z':3}    print(x,y)    print(kwargs)

    func(1,y=2,z=3,a=1,b=3) # def func(x,y,**kwargs): #x=1,y=2,**kwargs=**{'a':1,'b':3,'z':3} # print(x,y) # print(kwargs) # # func(1,y=2,**{'a':1,'b':3,'z':3}) #func(1,y=2,z=3,b=3,a=1) # def func(x,y=1,z=1): # print(x,y,z) # # func(**{'y':2,'x':1,'z':3})

    命名关键字参数:定义在*后的形参,这类形参,必须被传值,而且要求实参必须是以关键字的形式来传值

    def register(name,age,*,group,**kwargs):
        print(name)
        print(age)
        print(kwargs)
    
    
    ##register('egon',18)
    register('egon1',18,hobby='paly1',group='group1')

    形参的命名顺序:形参:位置形参,默认参数,*args,命名关键字参数,**kwargs

  • 相关阅读:
    swiper.js 点击链接跳转后再次返回到轮播原位置
    KVO和KVC
    XML与HTML的区别
    iOS UIAppearance使用详解
    文件处理
    IOS 四种数据永久保存的方式
    UIImage图片处理(更改颜色,修改透明度,缩小,合并图片)
    从一个视图控制器切换到另一个视图控制器的几种方式
    NSString的常用方法
    NSURLRequest和NSURLConnection
  • 原文地址:https://www.cnblogs.com/fenglinglf/p/6993940.html
Copyright © 2020-2023  润新知