zoukankan      html  css  js  c++  java
  • python函数-基础篇

    函数                                                                                                                
    为什么要用函数?
    1、减少代码冗余
    2、增加代码可读性

    函数的定义及使用
    def info():      # 这里我们定义一个打印个人信息的函数
        name = "xiaoming"
        age = 22
        job = "IT"
        print("%s年龄%d,职业%s." % (name, age, job))
        
        
    info()           # 函数调用
    定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。

    注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。

    调用:就是 函数名() 要记得加上括号。


    函数的返回值

    通过上个函数,可以打印出函数的输出结果,但过我们需要的是将,结果给到一个变量,或者别的对象时,就不能实现了,这里我们需要用到函数的返回值。

    def info():  # 这里我们定义一个打印个人信息的函数
        name = "xiaoming"
        age = 22
        job = "IT"
        return "%s年龄%d,职业%s." % (name, age, job)     # return 后面就时函数的返回值,在没有指定的情况下,默认返回None
    
    
    ret = info()  # 函数调用
    print(ret)

    使用return,就可以将我们想要的结果返回给变量ret了。

    使用 return 返回值的几种情况:

    没有返回值:
    不写return的情况下,会默认返回一个None:我们写的第一个函数,就没有写return,这就是没有返回值的一种情况。 
    def info():  # 这里我们定义一个打印个人信息的函数
        name = "xiaoming"
        age = 22
        job = "IT"
        print("%s年龄%d,职业%s." % (name, age, job))
    
    
    ret = info()        # 函数调用
    print(ret)
     只写return,后面不写其他内容,也会返回None,一旦遇到return,就会结束整个函数。
    return 返回一个值,return可以返回任意类型的值

    返回一个值

    def info():  # 这里我们定义一个打印个人信息的函数
        name = "xiaoming"
        age = 22
        job = "IT"
        return "%s年龄%d,职业%s." % (name, age, job)     # return 后面就时函数的返回值,在没有指定的情况下,默认返回None
    
    
    ret = info()  # 函数调用
    print(ret)

    return 返回多个值
    返回的多个值会被组织成元组被返回,也可以用多个值来接收,以逗号分割
    def info():  # 这里我们定义一个打印个人信息的函数
        name = "xiaoming"
        age = 22
        job = "IT"
        print("%s年龄%d,职业%s." % (name, age, job))
        return 1, "b", ["a", "c"]
    
    
    ret = info()  # 函数调用
    print(ret)
    ret2, ret3, ret4 = info()
    print(ret2, ret3, ret4)

    函数的参数
    如上个例子,如果我们想输出另一个人的信息,难道要再定义一个函数吗,那函数减少重复代码就没有意义了,当然不用
    我们可以这样:

    def info(name, age, job):  # 这里括号内的name,age,job叫形参
    
        print("%s年龄%d,职业%s." % (name, age, job))
    
    
    info("xiaoli", 23, "sale")        # 这里有对应形参个数的三个值,叫实参
    我们在调用info函数输出对应传入人员信息的过程叫做传递参数,简称传参。

    传参数的几种形式:

    1、位置传参 如上面例子中,形参和实参的个数一定要对应,不然会报错

    2、关键字传参,默认参数

    def info(name, age, job="IT"):  
    
        print("%s年龄%d,职业%s." % (name, age, job))
    
    
    info("xiaoli", age=23)     
    
    
    在形参中job = "IT"就是默认参数,默认参数时可变的,仍然可以使用关键字参数进行传值,默认了在不指定job的情况下,job会默认为IT。

    注意一: 位置参数必须在关键字参数的前面

    注意二: 形参中的非默认参数必须传值,对于一个形参只能赋值一次
      
    动态参数:

    当我们要对函数传递不定个数的位置参数或者关键字参数时,要使用到动态参数,一般我们使用*args以元祖的形式接收不定个数的位置参数,**kwargs以字典的形式接收不定个数的关键字参数。

    def info(*args, **kwargs):
    
        print("%s年龄%d,职业%s." % (args[0], args[1], kwargs["job"]))
    
    
    info("xiaoli", 23, job="IT")
    
    
  • 相关阅读:
    129 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 02 懒汉式的代码实现
    128 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 01 饿汉式的代码实现
    127 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 02 单例模式概述 01 单例模式的定义和作用
    126 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 01 设计模式概述 01 设计模式简介
    125 01 Android 零基础入门 02 Java面向对象 05 Java继承(下)05 Java继承(下)总结 01 Java继承(下)知识点总结
    leetcode-----121. 买卖股票的最佳时机
    leetcode-----104. 二叉树的最大深度
    Json串的字段如果和类中字段不一致,如何映射、转换?
    Mybatis-Plus的Service方法使用 之 泛型方法default <V> List<V> listObjs(Function<? super Object, V> mapper)
    模糊查询
  • 原文地址:https://www.cnblogs.com/zt0903/p/10674347.html
Copyright © 2011-2022 走看看