Python面试40问
📅 2023-10-02
👍 0 赞
1)什么是Python? 使用Python有什么好处? Python是一种编程语言,包含对象,模块,线程,异常和自动内存管理。Python的好处在于它简单易用,可移植,可扩展,内置数据结构,并且它是一个开源的。 PEP 8是一个编码约定,关于如何编写Python代码更具可读性。 Pickle模块接受任何Python对象并将其转换为字符串表示形式,并使用dump函数将其转储到文件中,此过程称为pickling。从存储的字符串表示中检索原始Python对象的过程称为unpickling。 Python语言是一种解释语言。Python程序直接从源代码运行。它将程序员编写的源代码转换为中间语言,再次转换为必须执行的机器语言。 Python内存由Python私有堆空间管理。所有Python对象和数据结构都位于私有堆中。程序员无权访问此私有堆,解释器负责处理此私有堆。 Python对象的Python堆空间分配由Python内存管理器完成。核心API提供了一些程序员编写代码的工具。 Python还有一个内置的垃圾收集器,它可以回收所有未使用的内存并释放内存并使其可用于堆空间。 PyChecker是一个静态分析工具,可以检测Python源代码中的错误,并警告错误的风格和复杂性。Pylint是另一种验证模块是否符合编码标准的工具。 Python decorators是我们在Python语法中进行的一项特定更改,可以轻松地更改函数。 列表和元组之间的区别在于列表是可变的而元组不是。元组可以被散列,例如作为词典的关键。 Python中的所有内容都是一个对象,所有变量都包含对象的引用。参考值是根据功能; 因此,您无法更改引用的值。但是,如果对象是可变的,则可以更改它们。 它们是语法结构,可以根据现有的iterable轻松创建Dictionary或List。 有可变和不可变类型的Pythons,内置类型为Mutable内置类型 在Python中,引入的每个名称都有一个存在的地方,可以被连接起来。这称为命名空间。它就像一个框,其中变量名称映射到放置的对象。每当搜索到变量时,将搜索此框以获取相应的对象。 14)为什么python中的lambda表单没有语句? python中的lambda表单没有语句,因为它用于创建新的函数对象,然后在运行时返回它们。 pass意味着,无操作的Python语句,或者换句话说,它是复合语句中的占位符,其中应该留有空白,并且不必在那里写入任何内容。 在Python中,迭代器用于迭代一组元素,如列表之类的容器。 Python中的单元测试框架称为unittest。它支持共享设置,自动化测试,测试关闭代码,将测试聚合到集合等。 从序列类型(如列表,元组,字符串等)中选择一系列项目的机制称为切片。 实现迭代器的方法称为生成器。这是一个正常的函数,除了它在函数中产生表达式。 Python文档字符串称为docstring,它是一种记录Python函数,模块和类的方法。 要在Python中复制对象,可以尝试copy.copy()或copy.deepcopy()来处理一般情况。您无法复制所有对象,但大多数对象都是如此。 Python序列可以是正数和负数的索引。对于正索引,0是第一个索引,1是第二个索引,依此类推。对于负索引,( - 1)是最后一个索引,( - 2)是倒数第二个索引,依此类推。 要将数字转换为字符串,请使用内置函数str()。如果需要八进制或十六进制表示,请使用内置函数oct()或hex()。 Xrange返回xrange对象,而range返回列表,并使用相同的内存,无论范围大小是多少。 25)Python中的module 和package是什么? 在Python中,模块是构造程序的方式。每个Python程序文件都是一个模块,它导入其他模块,如对象和属性。 Python程序的文件夹是一个模块包。包可以包含模块或子文件夹。 26)提到Python中局部变量和全局变量的规则是什么? 局部变量 :如果在函数体内的任何位置为变量赋值,则假定它是本地的。 全局变量 :仅在函数内引用的那些变量是隐式全局变量。 要在单个程序中跨模块共享全局变量,请创建一个特殊模块。在应用程序的所有模块中导入配置模块。该模块将作为跨模块的全局变量提供。 要在Unix上使Python脚本可执行,您需要做两件事, 第一行必须以#开头(#!/ usr / local / bin / python) 使用命令os.remove(filename)或os.unlink(filename) 要在Python中生成随机数,您需要将命令导入为: import random
random.random()
您可以通过以下方法访问C中用Python编写的模块, Module = = PyImport_ImportModule(“<modulename>”); 它是一个Floor Divisionoperator,用于分割两个操作数,结果为商,只显示小数点前的数字。例如,10 // 5 = 2和10.0 // 5.0 = 2.0。 Python包含一个巨大的标准库,适用于大多数Internet平台,如电子邮件,HTML等。 Python不需要显式内存管理,因为解释器本身会将内存分配给新变量并自动释放它们 拥有内置数据类型可以节省编程时间和工作量,从而声明变量 在Python中使用split函数是使用定义的分隔符将字符串分解为更短的字符串。它给出了字符串中存在的所有单词的列表。 Flask是基于“Werkzeug, Jinja 2 and good intentions ”BSD许可的Python的Web微框架。Werkzeug和jingja是它的两个依赖。 Flask是微框架的一部分。这意味着它对外部库几乎没有依赖性。它使框架变得轻盈,同时几乎没有更新的依赖性和更少的安全性错误。 36)Django,Pyramid和Flask之间有什么区别? Flask是一个“微框架”,主要用于具有更简单要求的小型应用程序。在Flask中,您必须使用外部库。 Pyramid是为更大的应用程序构建的。它提供了灵活性,并允许开发人员为他们的项目使用正确的工具。开发人员可以选择数据库,URL结构,模板样式等。Pyramid是可配置的。 像Pyramid一样,Django也可以用于更大的应用程序。它包括一个ORM。
37)什么是Flask-WTF以及它们的特征是什么? Flask-WTF提供与WTForms的简单集成。功能包括Flask WTF: Integration with wtforms
Secure form with csrf token
Global csrf protection
Internationalization integration
Recaptcha supporting
File upload that works with Flask Uploads
会话基本上允许您记住从一个请求到另一个请求的信息。在一个Flask中,它使用签名cookie,以便用户可以查看会话内容并进行修改。如果只有密钥Flask.secret_key,则用户可以修改会话。 40)Flask是MVC模型,如果是,举例说明你的应用程序的MVC模式? 基本上,Flask是一个简约框架,其行为与MVC框架相同。所以MVC非常适合Flask,MVC的模式我们将考虑以下示例。 长按订阅更多精彩▼
如有收获,点个在看,诚挚感谢
🔓 解锁阅读全文
📤 分享到社交平台
💬 微信
📢 微博
💬 QQ
👥 QQ空间
🔗 复制链接