开启Python的自学模式(六)函数

传送门 https://www.imooc.com/code/3511

吐槽一下101出来的火箭女孩,真的新歌风格跟凤凰传奇一样了。哎可怜山支大哥

Python之调用函数

要调用一个函数,需要知道函数名称参数

例如  绝对值函数abs

>>> abs(100)

100

>>> abs(-20)

20

比较函数 cmp(x, y) 需要两个参数

>>> cmp(1, 2)

-1

>>> cmp(2, 1)

1

>>> cmp(3, 3)

0

int()函数可以把其他数据类型转换为整数

>>> int('123')

123

>>> int(12.34)

12

str()函数把其他类型转换成 str:

>>> str(123)

'123'

>>> str(1.23)

'1.23'

获取List 中的元素用L.append( )

Python之编写函数

在Python中,定义一个函数要使用 def 语句

依次写出函数名、括号、括号中的参数和冒号

然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。

def  my_abs(x):

if x >= 0:

    return x

else:

    return -x

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

return None可以简写为return

Python函数之返回多值

包提供函数要先引用包

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

import math
def move(x, y, step, angle):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx, ny

这样我们就可以同时获得返回值:

>>> x, y = move(100, 100, 60, math.pi / 6)
>>> print x, y
151.961524227 70.0

但其实这只是一种假象,Python函数返回的仍然是单一值:

>>> r = move(100, 100, 60, math.pi / 6)
>>> print r
(151.96152422706632, 70.0)

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

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

emmmm这一段是直接复制的  最近成都的天气简直了

大太阳一下大雨,简直就是蓝天白云晴空万里突然暴风雨!!!!!

所以有点中暑,看着有点晕就直接复制了。

Python之递归函数

如果一个函数在内部调用自身本身,这个函数就是递归函数。

计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可以看出:

fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n

所以,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。

于是,fact(n)用递归的方式写出来就是:

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。

使用递归函数需要注意防止栈溢出。

https://www.imooc.com/code/3515

突然出现传送门是因为感觉大家可以去做做这一页的题



Python之定义默认参数

Python之定义默认参数https://www.imooc.com/code/3516之我不想写函数这一章

Python之定义可变参数

https://www.imooc.com/code/3517

猜你喜欢

转载自blog.csdn.net/qq_42744710/article/details/81231538
今日推荐