zoukankan      html  css  js  c++  java
  • 练习21--函数可以返回一些东西

    一 函数返回值

    1 定义:所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果

    2 语法:使用return语句可以结束函数调用,并将运算结果返回

    • 函数体中 return 语句有指定返回值时返回的就是其值
    • 函数体中没有 return 语句时,函数运行结束会隐含返回一个 None 作为返回值,类型是 NoneType,与 return 、return None 等效,都是返回 None。
    • 一个函数可以存在多条 return 语句,但只有一条可以被执行,如果没有一条 reutrn 语句被执行,同样会隐式调用 return None 作为返回值
    • 如果函数执行了 return 语句,函数会立刻返回,结束调用,return 之后的其它语句都不会被执行了

    3 返回值类型

    • 无论定义的是返回什么类型,return 只能返回单值,但值可以存在多个元素。
    • return [1,3,5] 是指返回一个列表,是一个列表对象,1,3,5 分别是这个列表的元素
    • return 1,3,5 看似返回多个值,隐式地被Python封装成了一个元组返回

    4 函数分类

    • 无参数,无返回值:此类函数,不能接收参数,也没有返回值,一般情况下,打印提示灯类似的功能,使用这类的函数
    • 无参数,有返回值:此类函数,不能接收参数,但是可以返回某个数据,一般情况下,像采集数据,用此类函数
    • 有参数,无返回值:此类函数,能接收参数,但不可以返回数据,一般情况下,对某些变量设置数据而不需结果时,用此类函数
    • 有参数,有返回值:此类函数,不仅能接收参数,还可以返回某个数据,一般情况下,像数据处理并需要结果的应用,用此类函数

    二 代码

    1 ex21.py

    def add(a,b):                       # 定义一个函数add,用来计算两个数的和
        print(f"ADDING {a} + {b}")      # 把程序所做的操作打印出来
        return a + b                    # 返回a+b的值
    
    def subtract(a,b):                  # 定义一个函数add,用来计算两个数的差
        print(f"SUBTRACTING {a} - {b}") # 把程序所做的操作打印出来
        return a - b                    # 返回a-b的值
    
    def multiply(a,b):                  # 定义一个函数add,用来计算两个数的乘积
        print(f"MUTLIPLING {a} * {b}")   # 把程序所做的操作打印出来
        return a * b                    # 返回a*b的值
    
    def divide(a,b):                    # 定义一个函数add,用来计算两个数的商
        print(f"DIVIDING {a} / {b}")     # 把程序所做的操作打印出来
        return a / b                    # 返回a/b的值
    
    print("Let's do some math with just functions") # 打印字符串,告诉用户现在正在做什么
    
    age = add(30,5)                     # 调用add函数,并把函数的返回值赋给变量age
    height = subtract(78,4)             # 调用subtract函数,并把函数的返回值赋给变量height
    weight = multiply(90,2)             # 调用multiply函数,并把函数的返回值赋给变量weight
    iq = divide(100,2)                  # 调用devide函数,并把函数的返回值赋给变量iq
    
    print(f"Age:{age},Height:{height},Weight:{weight},IQ:{iq}
    ")   # 打印计算结果
    
    # A puzzle for the extra credit,type it in anyway.
    print("Here is a puzzle.")         # 打印字符串,提醒用户现在在做的事情
    
    # 1 调用divide函数计算iq和2的商
    # 2 把divide函数的返回值作为multiply函数的参数,得到他们两个的乘积,并返回
    # 3 把multiply函数的返回值作为参数传给subtract函数,计算height和它的差,并返回  
    # 4 把subtract函数的返回值作为参数传给add函数,计算aga和它的和,并将函数返回值1赋给变量what
    what = add(age,subtract(height,multiply(weight,divide(iq,2))))
    
    # 打印最终的计算结果
    print("That becomes:",what,"Can you do it by my hand?
    ")
    
    another = subtract(height,add(iq,divide(age,multiply(weight,3))))
    print(f"{another}
    ")
    
    exercise = add(24,subtract(divide(34,100),1023))
    print(f"{exercise}
    ")

    程序讲解:

    (1)以add函数为例:

    • 1. 我们的函数是以两个参数被调用的: a 和 b 。
    • 2. 我们把函数所做的事情打印出来,在本例中是 “ADDING”。
    • 3. 然后我们让 Python 做一些反向的事情:我们返回 a + b 的和。你可以这样描述:我用 a 加上 b ,然后返回它们的结果。
    • 4. Python 把这两个数加起来。然后当函数终止的时候,运行了这个函数的任何一行都能够将 a + b 的结果赋予一个变量。

    (2)为什么 python 是是“从后往前”(backward)打印公式或者函数的?

    • 它其实不是从后往前,它是从里到外(inside out)。当你开始把代码打乱成分开的公式和函数时,你会看到它是如何工作的。试着理解我说的 “inside out” 而不是 “backward” 。

    2 运行结果

    PS E:3_work4_python2_code_python2_LearnPythonTheHardWay> python ex21.py
    Let's do some math with just functions
    ADDING 30 + 5
    SUBTRACTING 78 - 4
    MUTLIPLING 90 * 2
    DIVIDING 100 / 2
    Age:35,Height:74,Weight:180,IQ:50.0
    
    Here is a puzzle.
    DIVIDING 50.0 / 2
    MUTLIPLING 180 * 25.0
    SUBTRACTING 74 - 4500.0
    ADDING 35 + -4426.0
    That becomes: -4391.0 Can you do it by my hand?
    
    MUTLIPLING 180 * 3
    DIVIDING 35 / 540
    ADDING 50.0 + 0.06481481481481481
    SUBTRACTING 74 - 50.06481481481482
    23.935185185185183
    
    DIVIDING 34 / 100
    SUBTRACTING 0.34 - 1023
    ADDING 24 + -1022.66
    -998.66
  • 相关阅读:
    C#中TreeView组件使用方法初步
    DataList编辑、更新、取消、删除、分页
    使用JMeter做web应用的压力测试
    再读Struts1.3.5 User Guide 3 Building Control Components
    Tomcat DBCP Connection Pool Abandon Feature
    在Linux调试web应用时,如何查看System.out.println的输出?
    再读Struts1.3.5 User Guide 4 Configuring Applications
    一篇关于web.xml配置的详细说明
    再读Struts1.3.5 User Guide 1 Building Model Components
    Struts下html:select可以多选时的处理方法
  • 原文地址:https://www.cnblogs.com/luoxun/p/13255695.html
Copyright © 2011-2022 走看看