• Python_函数的初识、函数的返回值、函数的参数


    函数

    函数的初识

    格式

      def func_name(*args, **kwargs):  

        函数体

      完整函数格式如上,其中 def为声明,不可改变,必须这样写;def 与函数名之间使用一个空格隔开,函数名的命名规则与变量的命名规则相同;函数名后边紧接着是括号,括号里边设置一些参数,也可以不设定;括号后边紧接着是因为格式的冒号。下边一行是函数体的内容,函数体必须缩进于函数名一个tab的长度(两个或者四个空格的距离),所有的缩进的长度必须一致。

    执行

      执行函数使用 函数名() 的格式,以上变的函数为例,使用func_name()进行函数的调用。

    函数是以功能为导向的。

    def login():
        pass
    
    def register():
        pass
    
    1 def my_len():
    2     l1 = [1, 2, 3, 1, 6, 9, 10]
    3     count = 0
    4     for i in l1:
    5         count += 1

    6 my_len()

      

    函数的返回值

       函数使用return将值返回出来,但是再执行return以后,函数就执行结束了,不管后边有没有代码都不再执行。

    函数中遇到 return 结束函数,后面代码不执行。

    def login():
        print(111)
        print(222)
        return
        print(333)

    login()

     

      从上边的执行结果就可以看出,return 后一行的 print(333) 没有执行。

    将函数里面的值返回给函数的执行者(调用者)

      第一种情况:

        当只有return且其后边没有跟任何内容时,则默认返回值为None。

    def login():
        a = 2
        b = 3
        print(111)
        print(a, b)
        return

    print(login())

     

      第二种情况:

        return None

        当return None时,其返回值也为None,与第一种情况是一样的。

      第三种情况:

        return 单个值(返回的值与单个值的类型相同)

    def login():
        a = 2
        b = 3
        return a

    print(login(), type(login()))

     

    def login():
        a = 2
        b = 3
        return [1, 2]

    print(login(), type(login()))

     

    def login():
        a = 2
        b = 3
        return [1, 2]

    ret = login() a, b = ret print(a, b)

     

      第四种情况:

        return 多个值(以元组的形式返回给函数的调用者)

    def login():
        a = 2
        b = 3
        return 1, 'alex', [1, 2], {'name': '老男孩'}

    ret = login() print(ret)

     

     

    def my_len():
        l1 = [1, 2, 3, 1, 6, 9, 100]
        count = 0
        for i in l1:
            count += 1
        return count

    print(my_len())

     

    什么是None

      所有空集合、空列表、空字典、空字符串等等都为None。

    函数的参数

    实参角度

    位置参数

      一一对应,形参实参数量相等

    def my_len(a):  # a 形式参数,形参
        count = 0
        for i in a:
            count += 1
        return count

    l1 = [1, 2, 3, 1, 6, 9, 100] print(my_len(l1)) # 实参

     

    def my_len(a):  # a 形式参数,形参
        count = 0
        for i in a:
            count += 1
        return count

    l1 = [1, 2, 3, 1, 6, 9, 100] my_len(l1) # 实际参数,实参

    ret = my_len(l1)
    print(ret) 
    print(my_len(l1))

     

    def my_len(a):  # a 形式参数,形参
        count = 0
        for i in a:
            count += 1
        return count

    s1 = 'fhdsjfdsfsadfgsd' my_len(s1) ret = my_len(s1) print(ret) print(my_len(s1)) # 实际参数,实参

     

    def tes(a, b, c):
        print(111)
        print(a, b, c)

    tes(22, 'alex', [11, 22, 33])

     

    关键字参数

      一一对应,实参形参数量相等,实参顺序可变。

    def func(x, y):  # 形式参数
        print(x, y)

    func(y=3333, x=4) # 关键字参数

     

    混合参数

      关键字参数必须在位置参数的后边。

    def func(x, y, z):
        print(x, y, z)

    func(111, 222, z=555)  # 混合传参 位置参数必须在前边

     

       如果关键字参数没有在位置参数的后边时,则会报错。

    def func(x, y, z):
        print(x, y, z)

    func(111, z=555, 222)

     

    形参角度

    位置参数

      一一对应,形参实参数量相等,并且是按照位置进行传参。

    def func2(y, x):  # 形式参数
        print(x, y)

    func2(1, 2)

     

    默认字参数

      默认参数必须在形参的位置参数后面。

      默认参数不传值则为默认值,传值则覆盖默认值。

    def func2(y, x, z= 1000):
        print(x, y, z)

    func2(1, 2, 3000)

     

    def input_information(name, sex='男'):
        with open('information', encoding='utf-8', mode='a') as f1:
            f1.write('{}	{}
    '.format(name,sex))
    
    
    while True:
        msg = input('请输入用户的姓名,性别Q或者q退出').strip()
        if msg.upper() == 'Q':
            break
        if ',' in msg:
            name1, sex1 = msg.split(',')
            input_information(name1, sex1)
        else:
            input_information(msg)
    

     

  • 相关阅读:
    mosquitto配置文件说明
    Mac 下 Mosquitto 安装和配置 (Mosquitto为开源的mqtt服务器)
    transfer learning
    NP问题
    旋转矩阵与四元数
    在数学中一个非凸的最优化问题是什么意思?
    国产操作系统优麒麟安装步骤
    齐次坐标
    反走样
    数据分析师
  • 原文地址:https://www.cnblogs.com/ZN-225/p/9587948.html
Copyright © 2020-2023  润新知