首页 > 编程语言 >面试 | Python热门面试题·基础篇

面试 | Python热门面试题·基础篇

时间:2024-10-26 17:51:25浏览次数:3  
标签:面试题 Python 数据类型 列表 面试 对象 模块 类型

Python简介

Python 由 Guido van Rossum 开发,于 1991 年 2 月 20 日首次发布。它是最广泛使用和最受欢迎的编程语言之一,本质上是解释性的,因此在合并动态语义方面提供了灵活性。它也是一种免费的开源语言,语法非常简单干净。这使开发人员可以轻松Python,Python还支持面向对象编程,最常用于执行通用编程。

由于其简单的特性以及能够用更少的代码行实现多种功能,Python 的受欢迎程度正在急剧上升。由于 Python 能够使用强大的库支持强大的计算,因此它还用于机器学习、人工智能、Web 开发、Web 抓取和其他各种领域。因此,印度和世界各地对 Python 开发人员的需求巨大。公司愿意为这些开发人员提供惊人的福利和好处。

本文梳理了最为常见的 Python 面试问题及其答案。这些内容将助力你在众多求职者中脱颖而出,成功斩获令人艳羡的工作机会。

热门面试题

1.什么是__init__?

init是 Python 中的构造函数方法,在创建新对象/实例时会自动调用该方法来分配内存。所有类都具有与之关联的__init__方法。它有助于将类的方法和属性与局部变量区分开来。

# class definition
class Student:
    def init(self, fname, lname, age, section):
       self.firstname = fname
       self.lastname = lname
       self.age = age
       self.section = section# creating a new object
stu1 = Student("Sara", "Ansh", 22, "A2")

2.Python中常见的内置数据类型有哪些?

Python中有几种内置数据类型,尽管 Python 不需要在变量声明期间明确定义数据类型,但如果忽略数据类型的知识及其相互兼容性,则可能会发生类型错误。Python 提供type()isinstance()函数来检查这些变量的类型。这些数据类型可以分为以下几类:

  • None 类型None关键字在 Python 中表示空值。可以使用这些 NoneType 对象执行布尔相等运算。
  • 数字类型 有三种不同的数字类型 -整数、浮点数复数。此外,布尔值是整数的子类型。

注意:标准库还包括用于存储有理数的分数和用于存储具有用户定义精度的浮点数的小数

  • 序列类型 根据 Python 文档,有三种基本序列类型 -列表、元组范围对象。序列类型定义了inandnot in运算符来遍历其元素。这些运算符与比较运算具有相同的优先级。

注意:标准库还包括其他可供处理的类型: 1.二进制数据,例如bytearray bytesmemoryview、 和 2.文本字符串,例如str

  • 映射类型:

映射对象可以将可哈希值映射到 Python 中的随机对象。映射对象是可变的,目前只有一种标准映射类型,即字典

  • 集合类型 目前。Python 有两种内置集合类型 - setfrostyset。set类型是可变的,并支持add()和等方法remove()。frozenset类型是不可变的,在创建后无法修改。

注意:set是可变的,因此不能用作字典的键。另一方面,frozenset是不可变的,因此是可哈希的,可以用作字典的键或另一个集合的元素。

3.Python 中的全局、受保护和私有属性是什么?

  • 全局变量是在全局范围内定义的公共变量。要在函数内部使用全局范围内的变量,我们使用关键字global
  • 受保护的属性是在其标识符前加下划线的属性,例如 _sara。它们仍然可以从定义它们的类的外部访问和修改,但负责任的开发人员应避免这样做。
  • 私有属性是标识符前面带有双下划线的属性,例如 __ansh。它们不能直接从外部访问或修改,如果进行此类尝试,将导致 AttributeError

4.Python 数组和列表有什么区别?

  • Python 中的数组只能包含相同数据类型的元素,即数组的数据类型应该是同质的。它是 C 语言数组的薄包装,消耗的内存比列表少得多。
  • Python 中的列表可以包含不同类型的元素,即列表的数据类型可以是异构的。它的缺点是占用大量内存。
import array
a = array.array('i', [1, 2, 3])
for i in a:
    print(i, end=' ')    #OUTPUT: 1 2 3
a = array.array('i', [1, 2, 'string'])    #OUTPUT: TypeError: an integer is required (got type str)
a = [1, 2, 'string']
for i in a:print(i, end=' ')    #OUTPUT: 1 2 string

5.Python 中的切片是什么?

  • 顾名思义,“切片”就是取其一部分。
  • 切片的语法是[start:stop:step],start是列表或元组的切片起始索引,stop是结束索引或者停止的位置,step是要跳的步数。
  • 开始的默认值为0,停止为项目数,步长为 1。
  • 可以对字符串、数组、列表元组进行切片。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(numbers[1 : : 2])  #output : [2, 4, 6, 8, 10]

6.Python 中的 break、continue 和 pass 是什么?

break:break 语句立即终止循环并且控制流至循环体之后的语句。

continue:continue 语句终止语句的当前迭代,跳过当前迭代中的其余代码,并且控制流到循环的下一次迭代。

pass:如上所述,Python 中的 pass 关键字一般用于填充空块,类似于 Java、C++、Javascript 等语言中用分号表示的空语句。

7.Python 中 self 有什么用途?

Self用于表示类的实例。使用此关键字,您可以访问 Python 中类的属性和方法。它将属性与给定的参数绑定在一起。self 在不同的地方使用,通常被认为是一个关键字。但与 C++ 不同,self 在 Python 中不是关键字。

8.Python 中的全局、受保护和私有属性是什么?

  • 全局变量是在全局范围内定义的公共变量。要在函数内部使用全局范围内的变量,我们使用global关键字。
  • 受保护的属性是在其标识符前加下划线的属性,例如 _sara。它们仍然可以从定义它们的类的外部访问和修改,但负责任的开发人员应避免这样做。
  • 私有属性是标识符前面带有双下划线的属性,例如 __ansh。它们不能直接从外部访问或修改,如果进行此类尝试,将导致 AttributeError。

9.Python 中的模块和包是什么?

Python 包和 Python 模块是允许在 Python 中进行模块化编程的两种机制。模块化有几个优点 -

  • 简单性:使用单个模块可以帮助您集中精力解决手头问题的一小部分。这使得开发更容易,也更不容易出错。
  • 可维护性:模块旨在强制不同问题域之间的逻辑边界。如果以减少相互依赖的方式编写模块,则模块中的修改不太可能影响程序的其他部分。
  • 可重用性:模块中定义的函数可以轻松地被应用程序的其他部分重用。
  • 范围:模块通常定义一个单独的命名空间,这有助于避免与程序其他部分的标识符混淆。

模块通常只是带有 .py 扩展名的 Python 文件,可以定义和实现一组函数、类或变量。可以使用import语句导入并初始化它们一次。如果需要部分功能,请使用 导入所需的类或函数from foo import bar

允许使用点符号对模块命名空间进行分层结构化。模块有助于避免全局变量名称之间的冲突,类似地,有助于避免模块名称之间的冲突。 创建包很容易,因为它利用了系统固有的文件结构。因此,只需将模块塞入文件夹中,即可获得文件夹名称作为包名称。从此包导入模块或其内容需要将包名称作为模块名称的前缀,并以点连接。

注意:从技术上讲,您也可以导入该包,但遗憾的是,它不会将包内的模块导入到本地命名空间,因此实际上毫无用处。

10.什么是列表和元组? 两者之间的主要区别是什么?

列表元组都是序列数据类型,可以在 Python 中存储对象集合。 两个序列中存储的对象可以具有不同的数据类型。 列表用方括号 表示,而元组用圆括号['sara', 6, 0.19]表示。但两者之间的真正区别是什么? 两者之间的关键区别在于,虽然列表是可变的,但元组不可变对象。 这意味着列表可以随时修改、附加或切片,但元组保持不变,不能以任何方式修改。 您可以在 Python IDLE 上运行以下示例来确认差异: ('ansh', 5, 0.97)

11.Python 中的作用域是什么?

Python 中的每个对象都在一个范围内起作用。范围是 Python 中的对象在其中保持相关性的代码块。命名空间唯一地标识程序内的所有对象。但是,这些命名空间还定义了一个范围,您可以在其中使用它们的对象而无需任何前缀。以下是在 Python 代码执行期间创建的范围的一些示例:

  • 局部作用域指的是当前函数中可用的局部对象。
  • 全局范围是指自代码执行开始以来整个代码执行过程中可用的对象。
  • 模块级作用域是指程序中可访问的当前模块的全局对象。
  • 最外层的作用域指的是程序中可调用的所有内置名称。最后搜索此作用域中的对象以查找引用的名称。

注意:可以使用诸如global 之类的关键字将本地范围对象与全局范围对象同步。

12.什么是 PEP 8?为什么它很重要?

PEP 代表Python 增强提案。PEP 是一份官方设计文档,用于向 Python 社区提供信息,或描述 Python 或其流程的新功能。PEP 8尤其重要,因为它记录了 Python 代码的样式指南。显然,为 Python 开源社区做出贡献需要您真诚而严格地遵循这些样式指南。

13.什么是解释型语言?

解释型语言逐行执行语句。Python、Javascript、R、PHP 和 Ruby 等语言是解释型语言的典型示例。用解释型语言编写的程序直接从源代码运行,无需中间编译步骤。

14.什么是动态类型语言?

在了解动态类型语言之前,我们应该先了解一下什么是类型。类型是指编程语言中的类型检查。在强类型语言(例如 Python)中,“1” + 2将导致类型错误,因为这些语言不允许“类型强制”(数据类型的隐式转换)。另一方面,弱类型语言(例如 Javascript)将直接输出“12”作为结果。

类型检查可分两个阶段进行 -

  • 静态-执行之前检查数据类型。
  • 动态-执行期间检查数据类型。

Python 是一种解释型语言,逐行执行每个语句,因此在执行过程中会动态进行类型检查。因此,Python 是一种动态类型语言。

标签:面试题,Python,数据类型,列表,面试,对象,模块,类型
From: https://blog.csdn.net/Vampire_2017/article/details/143256875

相关文章

  • 【2024版】PyCharm专业版下载+安装+汉化教程,Pycharm环境配置和使用指南,零基础小白Pyth
    前言PyCharm是一款由JetBrains公司推出的PythonIDE。它提供了一个简单易用的图形用户界面,并且具有很多有用的功能,如代码补全和自动代码检查,帮助开发人员更加高效地编写Python代码。此外,PyCharm还提供了调试器和版本控制系统集成,使得开发人员能够更加轻松地管理和维护他们的......
  • 自学Python不知道看什么书?10本Python经典好书(附pdf),看完少走一半弯路
    前言Python的语法简单,易于上手,这使得初学者能够快速地掌握编程基础,并迅速投入到实际项目中去。同时Python入门时阅读书籍的作用是多方面的,阅读书籍不仅为初学者提供了系统学习Python的基础、掌握的基础知识,还可以培养他们的编程思维和学习动力,为未来的编程之路打下坚实的基础......
  • 一篇最全Python 爬虫超详细讲解(零基础入门,适合小白)
    爬虫是指通过编程自动从网页上获取信息的技术.想象你平时打开网页,右键点击“查看源代码”,那些你看到的HTML代码就是网页的结构,而爬虫就像一位帮你阅读这些网页内容的“机器人”.创作不易,还请各位同学三连点赞!!收藏!!转发!!!刚入门学习Python的小伙伴可以试试我的这份学习方法......
  • python实战(三)——文本向量化/文本表示
    一、概念    文本向量化是自然语言处理领域的重要环节,也是现在大语言模型开发重要基础。计算机程序无法理解文字信息(实际上非数值类型的信息都无法理解),因此我们需要将文字信息转换成计算机程序可理解的数值类型。通俗来说就是我们的算法模型是一系列函数和公式的组合......
  • [python]windows上通过whl文件安装sounddevice教程
    要通过.whl文件安装sounddevice,可以按照以下步骤进行操作:一、准备工作下载.whl文件:从gitee.com/FIRC/pythonlibs_whl_mirror或其他可信任的源下载sounddevice的.whl安装包。确保下载的.whl文件与你的Python版本和系统架构相匹配。安装pip:pip是Python的包管理工具,通常与Python一起安......
  • [python]windows上通过whl文件安装numpy+mkl教程
    在Windows上通过.whl文件安装numpy+mkl,可以按照以下步骤进行:一、准备工作下载numpy+mkl的.whl文件:访问可靠的Python库下载源,如gitee.com/FIRC/pythonlibs_whl_mirror。进去后按Ctrl+F搜索numpy+mkl,找到与你的Python版本和系统架构相匹配的.whl文件。下载该.whl文件到本地计算机。确......
  • 如何搞定所有 Web 前端面试题
    如何搞定所有Web前端面试题TIP工作能力≠面试能力,面试之前刻意练习,强化训练。聚焦前端面试必考的刚需内容,掌握解决面试题的思路、技巧与方法论。一、方法论总结首先要清楚企业对于工程师能力要求,自身能力素养及面试招聘流程1、企业招聘工程师的三个级别面试考察......
  • 【黑马python:函数】51-61
    本节目录一、前言二、函数的基础定义语法1.定义形式2.练习案例:查核酸三、函数的传入参数1.语法解析2.案例升级:核酸四、函数的返回值1.语法格式2.返回值的None类型五、函数的说明文档六、函数的嵌套调用七、变量在函数中的作用域1.局部变量与全局变量2.global关键字八......
  • python基础综合案例(数据可视化-动态柱状图)
    1.基础柱状图的构建打开浏览器,你会发现这是一个动态图,会随着时间变化而变化具体效果大家可以看我主页有个动态柱状图视频本质上来说,是和我们构建一个折线统计图差不多的,只是把对象换了一下如果我们需要反转x和y轴,可以输入以下代码#反转x轴和y轴bar.reversal_axis()......
  • Python网络爬虫入门指南
    Python网络爬虫入门指南网络爬虫(WebCrawler),又称为网络蜘蛛(WebSpider),是一种自动化程序,能够遍历互联网上的网页,收集并提取所需的数据。Python作为一种功能强大且易于学习的编程语言,非常适合用于编写网络爬虫。本文将带你了解Python网络爬虫的基本概念、主要库及其使用方法......