Python学习笔记17

来源:互联网 发布:linux修改ip的命令 编辑:程序博客网 时间:2024/06/05 23:47

1.函数定义

def functionname():

         代码块

def functionname(num1,num2):

       result = num1+num2

print(result)

2.打印函数文档

functionname.__doc__//打印函数文档

help(functionname)//打印函数文档

3.关键字参数

调用的时候用functionname(num =200,num1= 100),这样就不会因为位置变了,打印出错

4.收集参数

def test(*params):

print('参数的长度是:',len(params));

print('第二个参数是:',params[1]);

5.返回时可以返回一个元组

def functionname(num1,num2):

       return 1,‘火星人’,3.14

6.lamdb表达式:

def ds(x):

return 2*x+1//原函数

g = lamdb x : 2 * x + 1

g(5)

f = lamdb x,y : x+y

lamdb表达式优点:Python写一些脚本时,可以省下定义函数过程,节约命名问题,简化代码的可读性

6.filter:把任何非True的过滤掉

例如:

>>> def odd(x):return x % 2>>> temp = range(10)>>> temprange(0, 10)>>> show = filter(odd,tenp)Traceback (most recent call last):  File "<pyshell#18>", line 1, in <module>    show = filter(odd,tenp)NameError: name 'tenp' is not defined>>> show =filter(odd,temp)>>> list(show)[1, 3, 5, 7, 9]>>> list(filter(lambda x :x % 2,range(10)))[1, 3, 5, 7, 9]>>> 
7.map:两个参数,第一个是函数,第二个是个序列,把序列的每一个元素作为函数的参数运算加工,返回所有加工后的新序列。

8.递归(阶乘和斐波那契数列的实现)

>>> list(map(lambda x :x % 2,range(10)))[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]>>> list(map(lambda x :x * 2,range(10)))[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]>>> 
def factorial(n):    if n == 1:        return 1    else:        return n * factorial(n-1)number = int(input('请输入一个正整数:'))result =factorial(number)print("%d 的阶乘是:%d" % (number,result))
def fab(n):    n1 = 1    n2 = 1    n3 = 1    if n<1:        print('输入有误')        return -1    while(n-2) > 0:        n3 = n2 + n1        n1 = n2        n2 = n3        n -= 1    return n3result = fab(20)if result != -1:    print('总共有%d对小兔子诞生' % result)
递归版本:

def fab(n):    n1 = 1    n2 = 1    n3 = 1    if n<1:        print('输入有误')        return -1    if n == 1 or n == 2:        return 1    else:        return fab(n-1)+fab(n-2)result = fab(20)if result != -1:    print('总共有%d对小兔子诞生' % result)
分治思想:把复杂的问题不断的分解

0 0
原创粉丝点击