zoukankan      html  css  js  c++  java
  • 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)
    

     

  • 相关阅读:
    springCloud你要了解的都在这(方向性)
    十分钟了解 spring cloud
    JDK 自带压缩解压流
    JAVA自带API的压缩与解压
    Java实现多文件压缩打包的方法
    芯片超Intel,盈利比肩Apple,三星成科技界"全民公敌"
    一个不知道体谅难处,一个说话伤人自尊,矛盾的种子已悄悄埋下
    一天杀了两千宦官(袁绍也曾仗义过,为东汉彻底除去了宦官祸害。何进却心软了,任凭袁绍怎么劝说,何进就是不下手)
    WMWaire使用FreeNAS硬盘挂载、Raid0
    net share列出了Windows的默认共享(包括C盘)
  • 原文地址:https://www.cnblogs.com/ZN-225/p/9587948.html
Copyright © 2011-2022 走看看