zoukankan      html  css  js  c++  java
  • python学习之第十六课时--函数的作用及定义

    例子:

    当我们知道半径r的值时,就可以根据公式计算出面积,假设我们需要计算3个不同大小的圆的面积:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    r1=2.34
    r2=7.28
    r3=10.32
    s1=3.14*r1*r1
    s2=3.14*r2*r2
    s3=3.14*r3*r3

    当代码有规律的重复的时候,每次写3.14*x*x不仅很麻烦,而且如果要把3.14改成3.14159的时候得全部替换

    有了函数,我们不再每次写s=3.14*x*x,而是写成更有意义的函数调用s=area(x),而且函数area本身只需要些一次,就可以多次调用

    抽象是数学中非常常见的概念,举个例子

    计算数列的和,比如1+2+3+.....+100,写起来十分不方便,于是数学家发明了求和符号Σ,可以把1+2+3+...100叫作:

    这种抽象记法非常强大,因为我们看到Σ就可以理解成求和,而不是还原成低级的加法运算

    写计算机程序也是一样,函数就是最基本的一种代码抽象的方式

    函数最重要的目的是方便我们重复调用相同的一段程序

    Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用

    函数的定义

    python中,定义一个函数要使用def语句,依次写出函数名,括号,括号中的参数和冒号,然后在缩写块中编写函数体,函数的返回值用return语句返回

    例如:

    我们以自定义一个求绝对值的Numbers函数为例

    
    
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    def Numbers(x):
        if x>=0:
            return x
        else
            return -x
        
    #此函数的功能是求两个数的平方和
    #首先def,这个关键字通知python,我要定义一个函数,Numbers是函数名,括号中的x的函数的参数,是对函数的输入
    #参数可以一个或多个,也可以完全没有,但是括号要保留
    if x>=0:     #表示这一句判断x的大小,从而运算那个语句
    else#如果if后条件为假执行这一语句
    return x    #返回c的值,也就是输出的功能,python的函数允许无返回值,也就是不用return
    
    return a,b,c     #相当于return (a,b,c)
    
    
    
    

    函数体内部的语句在执行时,一旦执行到return语句时,函数就执行完毕,并将结果返回

    如果没有return语句,函数执行完毕后也会返回结果,只是结果为None,Return None可以简写成return

    python中,当程序执行到return的时候,程序就停止执行函数内余下的语句

    Nonepython中的一个特别的数据类型,用来表示什么都没有,相当于c语言的NULL,NOne多用于关键字参数传递的默认值

    函数的调用

    要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs。它接收一个参数

    可以直接从python的官方网站查看文档:

    http://docs.python.org/2/library/function.html#abs

    也可以在交互命令行通过help(abs)查看abs函数的帮助信息

    函数的返回值

    返回单值

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    def Numbers(x):
        if x>=0:
            print(x)
        else:
            print(-x)
    Numbers(-5)

    返回多值

    math包提供了sin()cos()函数,我们先用import引用它

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import math
    def Move(x,y,step,angle):
        xx=x+step*math.cos(angle)
        yy=y-step*math.sin(angle)
        return xx,yy
    
    x,y=Move(100,100,60,math.pi/6)
    print x,y
    打印  151.961524227 70.0

    其实这是一种假象,python函数返回的仍然是单一值

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import math
    def Move(x,y,step,angle):
        xx=x+step*math.cos(angle)
        yy=y-step*math.sin(angle)
        return xx,yy
    
    print(Move(100,100,60,math.pi/6))
    #打印   (151.96152422706632, 70.0)

    print打印返回结果,原来返回值是一个tuple

    :在语法上,返回一个tuple可以省略括号,而多个变量可以同时接受一个tuple,按位置赋给对应的值,所以python函数返回多值其实就是返回一个tuple,但写起来更方便

  • 相关阅读:
    docker(六):Dockerfile详解
    docker(五):存储卷管理
    安装VCenter 6.7
    VMware Workstation 不可恢复错误:(vmui) VERIFY bora
    HP DL360 G7安装esxi 6.0
    zabbix 4.0故障归纳
    docker(四):容器虚拟化网络概述
    安装VCenter 6.7时报错“系统未安装通用C”
    zookeeper查看日志
    zabbix(一):zabbix 4.0安装
  • 原文地址:https://www.cnblogs.com/LQ6H/p/python-16.html
Copyright © 2011-2022 走看看