• 学习心得2020.07.26


    019 函数:我的地盘我做主

    当函数有返回值时,调用直接返回返回值
    当函数没有返回值时,调用则返回None

    020 函数:内嵌函数和内包

    global关键字

    用于在函数中修改全局变量的值

    >>> count=5
    >>> def MyFun():
    	count=10
    	print(count)
    
    	
    >>> MyFun()
    10
    >>> print(count)
    5
    

    没有用global时,函数中不能修改全局变量

    >>> count=5
    >>> def MyFun():
    	global count
    	count=10
    	print(count)
    
    	
    >>> MyFun()
    10
    >>> print(count)
    10
    

    用了global后,函数中可以修改全局变量

    内嵌函数

    Python支持函数的嵌套

    >>> def fun1():
    	print('fun1正在被调用……')
    	def fun2():
    		print('fun2正在被调用……')
    	fun2()
    
    	
    >>> fun1()
    fun1正在被调用……
    fun2正在被调用……
    

    fun2()函数只能在fun1()内被调用,出了fun1()函数,就不能被调用

    021 函数:lambda表达式

    Python写一些执行脚本时,使用lambda就可以省下定义函数的过程,不需要专门定义一个函数然后再去调用,使用lambda就可以使代码更加精炼。

    >>> def ds(x):
    	return 2*x+1
    
    >>> ds(5)
    11
    >>> def add(x,y):
    	return x+y
    
    >>> add(3,4)
    7
    
    >>> lambda x:2*x+1
    <function <lambda> at 0x000002724631FCA8>
    >>> g=lambda x:2*x+1
    >>> g(5)
    11
    >>> lambda x,y:x+y
    <function <lambda> at 0x000002724631FE58>
    >>> g=lambda x,y:x+y
    >>> g(3,4)
    7
    

    两个厉害的内置函数

    • filter()过滤器:把任何非true的内容过滤掉
    >>> list(filter(None,[1,0,False,True]))
    [1, True]
    //筛选奇数的过滤器
    >>> def odd(x):
    	return x%2
    
    >>> temp=range(10)
    >>> show=filter(odd,temp)
    >>> list(show)
    [1, 3, 5, 7, 9]
    >>> list(filter(lambda x:x%2,range(10)))
    [1, 3, 5, 7, 9]
    
    • map()函数:对序列进行指定加工
    >>> list(map(lambda x:x*2,range(10)))
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    

    022函数:递归

    递归求阶乘:
    写一个求阶乘函数,例如所给的数是5,则阶乘式是1234%,得到的积是120,所以120就是4的阶乘

    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))
    

    023递归

    斐波那契数列的递归实现

    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('第20个数是:%d' % result)
    
    def fab(n):
        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('第20个数是:%d' % result)
    
  • 相关阅读:
    原型设计
    案例分析
    编程作业
    《构建之法》阅读任务
    2021.3.11 准备工作随笔
    课程总结
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周课程总结
    第十二周
    第十一周课程总结
  • 原文地址:https://www.cnblogs.com/rioca/p/13380715.html
Copyright © 2020-2023  润新知