Python学习笔记17

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)
>>> temp
range(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 n3
result = 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值