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)
    

     

  • 相关阅读:
    SGU 176.Flow construction (有上下界的最大流)
    POJ 2391.Ombrophobic Bovines (最大流)
    poj 1087.A Plug for UNIX (最大流)
    poj 1273.PIG (最大流)
    POJ 2112.Optimal Milking (最大流)
    SGU 196.Matrix Multiplication
    SGU 195. New Year Bonus Grant
    关于multicycle path
    ppt做gif动图
    codeforces 598A Tricky Sum
  • 原文地址:https://www.cnblogs.com/ZN-225/p/9587948.html
Copyright © 2011-2022 走看看