欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

发布时间:2024/4/11 python 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

P82-递归函数-阶乘计算案例

#使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=factorial(5)print(result)#分行几何

P83-嵌套函数-内部函数-数据隐藏

嵌套函数:在函数内部定义的函数

分形几何

什么情况下使用嵌套函数?

  • 封装-数据隐藏

    外部无法访问嵌套函数

  • 贯彻DRY(Dont repeat yourself)的原则

    嵌套函数,可以让我们在函数的内部避免重复的代码

  • 闭包

    后面会详细讲解

  • #测试嵌套函数的定义def outer(): print("outer running")def inner01(): print("inner 01 running") inner01()outer()def printChineseName(name,familyName): print("{0} {1}".format(familyName,name))def printEnglishName(name,familyName): print("{0} {1}".format(name,familyName))def printName(isChinese,familyName):def inner_print(a,b): print("{0} {1}".format(a,b))if isChinese: inner_print(familyName,name)else: inner_print(name,familyName)printName(True,"小七","高")printName(False,"Ivana","Trump")

    P84-nonlocal_global

    nonlocal关键字

    nonlocal

    用来声明外层的局部变量

    global

    用来声明全局变量

    【操作】使用nonlocal声明外层的局部变量

    #测试nonlocal,global关键字的用法def outer(): b=10def inner():nonlocal b #声明外部函数的局部变量 print("innner",b)#b=20直接b=20就会报错,必须要先声明一下 inner() print("outer b:",b)outer()print("a:",a)

    P85 LEGB规则

    Enclosed指的是嵌套函数,一个函数包裹另一个函数,闭包

    如果某一个name映射在局部(local)命名的空间当中没有找打,接下来就会在闭包作用域(enclosed)进行搜索,如果闭包作用域也没有找到,Python就会找到全局(global)命名空间当中进行查找,最后会在内建(built-in)命名空间当中进行搜索(如果一个名称在所有的命名空间当中都没有找到,就会产生一个NameError)

    #测试LEGBprint(str(30))print(type(str))#str="global str"def outer():#str="outer"def inner():#str="inner" print(str)pass inner()outer()

    P86面向对象和面向过程的区别-执行者的思维

    第六章 面向对象的编程

    面向对象(Object oriented Programming,OOP)编程的思想主要是针对大型的软件设计而来的,面向对象的编程使程序的扩展性更强,可读性更好,使得编程可以像搭积木一样的简单,面向对象将数据和操作数据的相关的方法封装到对象当中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率

        Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对象的基本功能,例如:继承,多态,封装等

    Python当中,一切皆对象,我们在前面学习的是数据类型,函数等,都是对象

    注意:Python支持面向过程,面向对象,函数式编程等多种编程范式

    面向对象和面向过程的区别

    面向过程(Procedure Oriented)思维

    面向过程编程更加关注的是程序的逻辑流程,是一种执行者的思维,适合编写小规模的程序,

    面向过程思想思考问题的时候,我们首先思考“怎么按照步骤实现”,并将步骤对影成方法,一步一步,最终完成,这个时候简单的任务,不需要过多的协作的情况下,比如:如何开车?我们很容易就列出了时间的步骤

  • 发动车2,挂挡3踩油门4走你

    面向过程适合简单,不需要协作的事务,但是当我们思考比较复杂的问题的时候,比如:“如何造车?”就会列出1234这样的步骤,这是不可能的,那是因为造车太复杂,需要很多的协作才能够完成,此时面向对象的思想就营运而生了。

  • 面向对象(object oriented)思维

        面向对象更加关注的是软件当中对象之间的关系,是一种设计者思维,适合编写大规模的程序。

    欢迎打赏,么么哒!

    ●R语言

    ●句子

    ●JAVA

    ●C语言以及算法笔记

    ●大学生生活图鉴

    ●JavaScript

    ●计算机网络原理

    ●计算机组成原理

    ●操作系统

    ●数据库系统概论

    ●数据结构

    ●英语

    ●Linux

    ●数字图像处理

    ●云计算与人工智能

    ●资源

    ●明星电视剧社会现象娱乐

    Python

    仙女都在看点点点,赞和在看都在这儿!

    总结

    以上是生活随笔为你收集整理的python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。