A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

函数

调用函数

Python 内置函数:官方文档链接:点击打开链接

求绝对值:



  • >>> abs(-54.90)



  • 54.9



  • >>> abs(223)



  • 223



  • >>> abs(9999999)



  • 9999999


还可以通过变量名,引用函数:



  • >>> func = abs



  • >>> func(-1)



  • 1




定义函数

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

如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。

return None可以简写为return。

例如:



  • >>> def cacu(x):



  • ...     sum = 0



  • ...     for x in range(x):



  • ...             sum = sum + x



  • ...     return sum



  • ...


>>> cacu(5)

10

定义空函数可以用pass语句:



  • >>> def nop():



  • ...     pass



  • ...



返回多个值时:returnx,y

其实返回的是一个tuple对象,(x,y),括号可以省略

函数的参数默认参数:

默认参数可以简化函数的调用。设置默认参数时,有几点要注意:

一是必选参数在前,默认参数在后,否则Python的解释器会报错(思考一下为什么默认参数不能放在必选参数前面);

二是如何设置默认参数。

当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。

如:水果店卖水果,需要输入水果类型和价格



  • >>> def sale(f,p):



  • ...     print 'fruit:%s'% f



  • ...     print 'price:%f'% p



  • ...



调用时,只需要传入两个值:f,p:

>>> sale('apple',34.33)

fruit:apple

price:34.330000

但是如果,我还需要知道有关水果其他信息,比如水果店的位置还有店铺名称,

可以把位置s和名称name设为默认值:



  • >>> def sale(f,p,s='NJ',name='SN'):



  • ...     print 'fruit:%s'% f



  • ...     print 'price:%f'% p



  • ...     print 'situation:%s'%s



  • ...     print 'name:%s'% name



  • ...



>>> sale('apple',34.22)

fruit:apple

price:34.220000

situation:NJ

name:SN

可见,默认参数降低了函数调用的难度,而一旦需要更复杂的调用时,又可以传递更多的参数来实现。无论是简单调用还是复杂调用,函数只需要定义一个。

定义默认参数要牢记一点:默认参数必须指向不变对象!

可变参数:

在参数前加上*



  • >>> def allgrades(*grade):



  • ...     sum = 0



  • ...     for g in grade:



  • ...             sum = sum + g



  • ...     print sum



  • ...



>>> grade =(66,77,99,44,66)

>>> allgrades(1,2,3,4,5,6)

21

>>>allgrades(*grade)

352

关键字参数:

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。



  • >>> def person(name,age,**other):



  • ...     print 'name:',name,'age:',age,other



  • ...



  • >>> person ( 'Sandy', 18, city='NJ', sex='female' ,weight=50)



  • Name : Sandy age: 18 {'city': 'NJ', 'weight': 50, 'sex': 'female'}



参数组合:

在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

递归函数

定义阶乘的函数:f(n)=f(n-1)*n:



  • >>> def f(n):



  • ...     if n==1:



  • ...             return n



  • ...     else:



  • ...             return n*f(n-1)



  • ...



>>> f(3)

6

>>> f(4)

24


1 个回复

正序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马