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的时候,程序就停止执行函数内余下的语句

None是python中的一个特别的数据类型,用来表示什么都没有,相当于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,但写起来更方便

时间: 2024-10-13 23:33:28

python学习之第十六课时--函数的作用及定义的相关文章

python学习之第十六课时--缩进(indentation)

python最具特色的是用缩进来标明成块的代码 我们下面用if选择结构举例,if后面跟随条件,如果条件成立,则执行归属于if的一个代码块 先看c语言的表达方式 if(i>0) { x=1; y=3; } 如果i>0的话,我们将进行括号中所包括的两个赋值语句.括号中包含的就是块操作,它隶属于if 同的目的,在python中,这段话是这样的 if i>0: x=1 y=3 在python中,去掉i>0周围的括号,去除每个语句尾的分号,表示块的花括号也消失了.多出来:(冒号),还有x=1

Python学习笔记第二十六周(Django补充)

一.基于jQuery的ajax实现(最底层方法:$.jax()) $.ajax( url: type:''POST" ) $.get(url,[data],[callback],[type])  #callback是发送成功后就执行的函数,type是告诉服务器需要什么数据,type:text|html|json|script $.post(url,[data],[callback],[type]) 例子: $.get('/jquery_get/',{name:'gavin'}) //name关键

Python学习笔记(十)匿名函数

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431843456408652233b88b424613aa8ec2fe032fd85a000 本文章完全用于个人复习使用,侵删: 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时,除了定义一个f(

python学习之第十五课时--存址方式及拷贝

不同数据类型在内存中的存址方式 字符串str,一次性创建,不能被修改,只要有修改字符串,就是在重新创建新的字符串 Python底层是c语言写的,c语言没有字符串的说法,字符串是字符数组,所以在内存址是字符数组的方式 图示: 列表list 图示: copy.copy()浅拷贝:只拷贝第一层,下面的指向的原始地址 copy.deepcopy()深拷贝:除底层的字符串或数字外,其他的上层都拷贝,底层的字符串或数字还是指向的原始地址 注意:在使用拷贝时,必须先引入拷贝模块 import copy 一.数

python学习第四十六天dir( )函数用法

dir( )函数有点像目录的意思,但是他是包含由模块定义的名称的字符串的排序列表.这个列表包含模块中定义的所有模块,变量和函数的名称. 列举其用法 import time content = dir(time) print (content) 输出结果 ['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'ctime'

Python学习笔记(十六)拓展库Scipy

python学习(二十六)网络编程

1.request方法 发送get请求 from urllib import request import json url='xxx/stu_info?stu_name=xiaohei' req=request.urlopen(url,)#打开一个url发送get请求 content=req.read().decode()#获取返回结果 res_dic=json.loads(content)#返回结果转成字典 if res_dic.get('error_code')==0: print('测试

quick-cocos2d-x 学习系列之十六 塔防完结

quick-cocos2d-x 学习系列之十六 塔防完结 1.  math2d.lua文件 该文件实现了常用的数学函数. Dist函数实现两点的距离. radians4point求两点的夹角(弧度) pointAtCircle求圆上一个点的位置 pointAtLineToPoint求线段上与指定点距离最近的点 degrees2radians角度转换为弧度 radians2degrees弧度转换为角度 2.  utils.lua文件 2.1         drawCircle 返回newCirc

Python开发【第十六篇】:AJAX全套

Python开发[第十六篇]:AJAX全套 概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要重新加载全局数据 2.AJAX AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案. 异步的JavaScript:使用 [JavaScript语言] 以