Python面经基础题

本文介绍了Python的基础概念,包括列表和元组的区别、Python的主要功能(如简单易学、开发效率高和跨平台)、内存管理、命名空间、模块系统、全局变量、类型转换、PEP规范、迭代器、垃圾回收等,以及常用操作如安装、注释、序列化和函数等。
摘要由CSDN通过智能技术生成

Python基础面经

Q1、Python中的列表和元组有什么区别?

  • 可变性(Mutability):列表是可变的,即可以通过索引修改、添加或删除其中的元素。而元组是不可变的,一旦创建,就不能对其进行修改。如果需要频繁地进行增删改操作,通常使用列表;如果需要确保数据的不可变性,通常使用元组。

  • 性能:由于列表是可变的,它需要更多的内存空间来支持动态调整大小的功能。相比之下,元组是不可变的,因此占用的空间较小,并且具有更快的访问速度。如果不需要修改数据并且追求性能,使用元组可能更合适。

 Q2、Python的主要功能是什么?

  • 简单易学:Python的语法简洁清晰,易于理解和上手。它采用了简洁、优雅的语法风格,使得开发者能够以更少的代码表达更多的思想。
  • 开发效率高:Python提供了丰富的标准库和第三方库,涵盖了各种常用任务的模块和工具,使得开发人员能够快速构建复杂的应用程序。此外,Python还支持自动内存管理和垃圾回收机制,减轻了开发者的负担。
  • 跨平台性强:Python可以运行在多个操作系统上,包括Windows、MacOS、Linux等,这使得开发人员可以轻松地编写一次代码并在不同平台上运行。

Q3、Python是通用编程语言吗?

Python是一种通用编程语言。通用编程语言是指可以用于开发各种类型应用程序的编程语言,而不局限于某个特定领域或特定用途。 

Q4、Python是如何解释语言的?

  •  Python是一种解释性语言,它的代码在运行前不需要显式地编译为机器码,而是通过解释器逐行解释并执行代码。
  • 当你运行Python程序时,解释器会读取代码文件,并将其转换为一系列的字节码指令。然后,解释器逐条解释字节码指令,并将其转化为机器码,然后由计算机的处理器执行。

Q5、什么是pep? 

 PEP是一种用于提出、讨论和实现Python语言改进的规范文件。每个PEP都描述了一个具体的问题、特性或改进,并提供了对应的解决方案和实现细节。

 Q6、如何在Python中管理内存?

在Python中,内存管理是由解释器自动处理的,开发者通常不需要显式地进行内存管理。Python使用了垃圾回收机制来自动处理不再使用的内存对象的释放。

Q7、Python中的命名空间是什么? 

  •  命名空间(namespace)是一种用于组织和管理标识符(变量名、函数名、类名等)的机制。它定义了标识符的可见性和访问规则。
  • 命名空间可以看作是一个字典,其中键是标识符的名称,值是与之对应的对象。在程序执行期间,Python会维护多个命名空间,并通过栈(stack)的方式进行管理,称为命名空间栈。

 Q8、什么是PYTHONPATH?

Q9、什么是python模块?Python中有哪些常用的内置模块?

  • 模块(module)是一种组织代码的方式,用于将相关的功能封装在一个单独的文件中。一个模块可以包含变量、函数、类等定义,并提供这些定义的接口,以便其他程序可以导入并使用。
  • math、os、datatime

 Q10、Python中的局部变量和全局变量是什么?

  • 局部变量(Local Variable)是在函数内部定义的变量,其作用范围仅限于函数内部。局部变量在函数执行时创建,在函数执行结束后被销毁,不能在函数外部直接访问。每次调用函数时,都会为函数的局部变量创建一个新的实例。
  • 全局变量(Global Variable)是在模块级别(函数之外)定义的变量,其作用范围覆盖整个模块,可以在模块的任何地方被访问和修改。
  • 如果在函数内部对全局变量进行修改时,需要使用global关键字来声明该变量是全局变量,而不是创建一个同名的局部变量。

 Q11、python是否区分大小写?

区分

Q12、什么是Python中的类型转换?

int、float、str、bool、list、

Q13、如何在Windows上安装Python并设置路径变量?

Q14、python中是否需要缩进?

需要

 Q15、Python数组和列表有什么区别?

  1. 数据类型:数组是一种固定大小且同质的数据结构,它只能存储具有相同数据类型的元素。列表是一种可变大小且异质的数据结构,它可以存储不同数据类型的元素。

  2. 大小调整:数组的大小在创建时就确定,并且不能更改。如果需要更改数组的大小,必须创建一个新的数组。列表的大小是可变的,可以根据需要动态添加或删除元素。

Q16、Python中的函数是什么? 

 在Python中,函数(Function)是一种可重复使用的代码块,它接受输入参数、执行特定的任务,并且可以返回一个结果。

 Q17、什么是__init__?

__init__是一个特殊方法(Special Method),用于初始化一个类的实例对象。它是类的构造函数,在创建类的对象时自动调用。

Q18、什么是lambda函数?

  •  在Python中,lambda函数(也称为匿名函数)是一种简化的函数定义方式,可以快速定义小型的、一次性的函数。相对于使用def关键字定义完整的函数,lambda函数更为简洁和紧凑。
  • 语法:lambda parameters:expression

 Q19、Python中的self是什么?

self在Python中是一个约定俗成的参数名,用于表示类的实例对象自身。它允许在类的方法中访问和操作实例的属性和方法。使用self可以使代码更具可读性,并符合Python的编程约定。

 Q20、什么是python迭代器?

  • 迭代器(Iterator)是一种用于遍历可迭代对象(Iterable)的对象。可迭代对象是指实现了__iter__方法的对象,而迭代器是在可迭代对象基础上实现了__next__方法的对象。
  • 迭代器对象可以使用next()函数来逐个访问可迭代对象中的元素,直到达到可迭代对象的末尾,此时会抛出StopIteration异常。

 Q21、range&xrange有什么区别?

  • range() 返回一个列表对象,一次性生成整个列表。
  • xrange() 返回一个 xrange 对象,按需生成下一个整数值,具有惰性计算的特性。在Python 2中使用。

Q22、如何在python中写注释?

  • 单行注释: 使用 # 符号可以在代码行的末尾添加单行注释。
  • 多行注释: 使用三个引号 '''""" 可以创建多行注释块。

Q23、什么是pickling和unpickling?

  •  Pickling(序列化):将一个对象转换为字节流的过程称为 pickling 或者叫序列化。这使得对象可以在网络上传输或保存到磁盘上以供将来使用。
  • Unpickling(反序列化):将字节流转换回对象的过程称为 unpickling 或者叫反序列化。这允许我们从文件或者通过网络接收的字节流中重新创建对象。在Python中,我们可以使用 pickle 模块来实现对象的反序列化。

Q24、python中的生成器是什么?

 生成器(Generator)是一种特殊的函数,可以用于迭代地生成一系列的值,而不是一次性返回所有值。生成器可以更高效地生成大量数据,节省内存空间,并且可以延迟计算,只在需要时生成值

 Q25、你如何把字符串的第一个字母大写?

在Python中,可以使用字符串的 capitalize() 方法将字符串的第一个字母变为大写。这个方法会返回一个新的字符串,首字母被转换为大写,其他字母保持不变。

string.capitalize()

Q26、如何将字符串转换为全小写?

 在Python中,可以使用字符串的 lower() 方法将字符串转换为全小写。这个方法会返回一个新的字符串,其中所有字母都被转换为小写形式。

string.lower()

 Q27、如何在python中注释多行?

Q28、什么是Python中的文档Docstrings?

文档字符串(Docstrings)是用于文档化函数、类、模块等程序实体的字符串。

Q29、operators中的is、not和in各有什么功能?

  •  is 操作符用于比较两个对象的身份标识是否相等。它检查两个对象是否引用同一个内存地址,即判断两个对象是否是同一个对象。
  • not 操作符用于对条件进行取反,即将条件的值取反。它返回布尔值 True 或 False
  • in 操作符用于检查一个值是否存在于序列(如字符串、列表、元组等)或其他可迭代对象中。它返回布尔值 True 或 False

 Q30、Python中help()和dir()函数的用法是什么?

  • help() 函数可以用于获取对象的帮助信息。
  • dir() 函数用于返回对象的属性列表。它返回一个按字母顺序排序的字符串列表,列出了对象所拥有的所有有效属性(方法、变量等)。

Q31、当Python退出时,为什么不清除所有分配的内存?

 当程序运行结束或Python解释器退出时,并不会清除所有分配的内存。这是因为Python解释器会在程序结束时自动进行内存清理和资源回收,释放一部分内存,但并非完全清除所有分配的内存。

Q32、Python中的字典是什么?

  •  在Python中,字典(Dictionary)是一种无序的、可变的数据结构,用于存储键-值(key-value)对。它是Python中非常常用的数据结构之一,提供了高效的查找和插入操作。
  • 键-值对:字典由一组键-值对构成,每个键唯一对应一个值。
  • 无序性:字典中的元素没有顺序,不像列表和元组那样有索引。
  • 可变性:字典中的键-值对可以动态地进行增删改操作。
  • 动态性:字典的大小可以根据需要动态调整

 Q33、如何在python中使用三元运算符?

...if ... else

Q34、为什么使用** args,** kwargs?

  • *args:用于接收任意数量的位置参数。在函数调用时,可以传入任意多个参数,这些参数会被收集并以元组的形式赋值给args
  • **kwargs:用于接收任意数量的关键字参数。在函数调用时,可以传入任意多个键值对,这些键值对会被收集并以字典的形式赋值给kwargs,在函数内部可以通过kwargs来访问这些参数。

Q35、len()函数有什么作用?

用于返回一个对象的长度或元素个数

 Q36、在Python中split(),sub(),subn()功能。

  • split() - 使用正则表达式模式将给定字符串“拆分”到列表中。
  • sub() - 查找正则表达式模式匹配的所有子字符串,然后用不同的字符串替换它们
  • subn() - 它类似于sub(),并且还返回新字符串。

 Q37、什么是负指数,功能是什么

Python中的序列是索引的,它由正数和负数组成。积极的数字使用’0’作为第一个索引,'1’作为第二个索引,进程继续使用。

负数的索引从’-1’开始,表示序列中的最后一个索引,’ - 2’作为倒数第二个索引,序列像正数一样前进。

 Q38、什么是Python包?

在Python中,包(Package)是一种用于组织和管理代码的方式。包是一个包含多个模块的文件夹,它提供了一种将相关的模块组织在一起的机制,以便更好地组织、管理和复用代码。

 Q39、如何在Python中删除文件?

你可以使用os.remove()函数来删除文件

 Q40、什么是python的内置类型?

Python的内置类型是指在Python解释器中默认提供的一些基本数据类型,可以直接在代码中使用而无需导入任何模块。

Q41、Python中pass语句的作用是什么? 

pass 是一个空语句,它不执行任何操作。pass 被用作一个占位符

Q42、Python里面match()和search()的区别? 

  • match() 方法只在字符串的开头位置进行匹配,如果字符串的开头不满足匹配条件,则返回 None;而 search() 方法会在整个字符串中搜索,找到第一个满足匹配条件的子串即可。
  • match() 方法需要从字符串的开头开始匹配,如果希望匹配成功,整个字符串都必须符合模式要求;而 search() 方法可以在字符串的任意位置进行匹配,只要找到满足模式要求的子串即可。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值