给大家安利一个免费且实用的前端刷题(面经大全)网站,👉点击跳转到网站。
直接跳到末尾 去评论区领书
100 个基本的 Python 面试问题第一部分(1-20)
Q-1:什么是 Python,使用它有什么好处,你对 PEP 8 有什么理解?
Q-2:以下 Python 代码片段的输出是什么?证明你的答案。
Q-3:如果程序不需要动作但在语法上需要它,可以在 Python 中使用的语句是什么?
Q-4:在 Python 中使用“~”获取主目录的过程是什么?
Q-5:Python 中可用的内置类型有哪些?
Q-6:如何在 Python 应用程序中查找错误或执行静态分析?
Q-7:什么时候使用 Python 装饰器?
Q-8:列表和元组的主要区别是什么?
Q-9:Python 如何处理内存管理?
Q-10:lambda 和 def 之间的主要区别是什么?
Q-11:使用 python reg 表达式模块“re”编写一个 reg 表达式来验证电子邮件 ID?
Q-12:你认为以下代码片段的输出是什么?代码中有错误吗?
Q-13:Python 中有 switch 或 case 语句吗?如果不是,那么相同的原因是什么?
Q-14:Python 用来迭代数字序列的内置函数是什么?
Q-15:Python 的 try-except 块中可能有哪些可选语句?
Q-16:Python 中的字符串是什么?
Q-17:Python 中的切片是什么?
Q-18:Python 中的 %s 是什么?
Q-19:字符串在 Python 中是不可变的还是可变的?
Q-20:Python 中的索引是什么?
让我们开始回答基础级别的 Python 面试问题。
Q-1:什么是 Python,使用它有什么好处,你对 PEP 8 有什么理解?
什么是 Python
Python 是最成功的解释型语言之一。当你编写 Python 脚本时,它不需要在执行前进行编译。很少有其他解释性语言是 PHP 和 Javascript。
Python 编程的好处
- Python 是一种动态类型语言。这意味着你无需在声明时提及变量的数据类型。它允许设置变量,如 var1=101 和 var2 =“你是一名工程师” 没有任何错误。
- Python 支持面向对象编程,因为你可以定义类以及组合和继承。它不使用公共或私有等访问说明符)。
- Python 中的函数就像一等对象。它建议你可以将它们分配给变量,从其他方法返回并作为参数传递。
- 使用 Python 开发很快,但运行它通常比编译语言慢。幸运的是,Python 能够包含“C”语言扩展,因此你可以优化脚本。
- Python 有多种用途,如基于 Web 的应用程序、测试自动化、数据建模、大数据分析等等。或者,你可以将其用作“glue”层来处理其他语言。
PEP 8
PEP 8 是最新的 Python 编码标准,一组编码建议。它指导提供更具可读性的 Python 代码。
Q-2:以下 Python 代码片段的输出是什么?证明你的答案。
def extendList(val, list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
print "list1 = %s" % list1
print "list2 = %s" % list2
print "list3 = %s" % list3
上述 Python 代码片段的结果是:
list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']
你可能错误地认为 list1 等于 [10] 并且 list3 与 [‘a’] 匹配,认为每次调用 extendList 时,list 参数都会初始化为其默认值 []。
但是,流程就像在定义函数后创建一个新列表一样。每当有人在没有列表参数的情况下调用 extendList 方法时,都会使用相同的方法。它是这样工作的,因为表达式的计算(在默认参数中)发生在函数定义时,而不是在调用期间。
因此, list1 和 list3 在同一个默认列表上运行,而 list2 在它自己创建的单独对象上运行(通过传递一个空列表作为 list 参数的值)。
可以通过以下方式更改 extendList 函数的定义。
def extendList(val, list=None):
if list is None:
list = []
list.append(val)
return list
有了这个修订后的实施,输出将是:
list1 = [10]
list2 = [123]
list3 = ['a']
Q-3:若程序不需要动作但语法需要,则可在 Python 中使用的语句是什么?
pass 语句是一个空操作。执行时什么也没有发生。你应该使用小写的“pass”关键字。如果你写“Pass”,你会遇到类似“NameError: name Pass is not defined”这样的错误。Python 语句区分大小写。
letter = "hai sethuraman"
for i in letter:
if i == "a":
pass
print("pass statement is execute ..............")
else:
print(i)
Q-4:在 Python 中使用“~”获取主目录的过程是什么?
你需要导入 os 模块,然后只需一行即可完成其余工作。
import os
print (os.path.expanduser('~'))
输出:
/home/runner
Q-5:Python 中可用的内置类型有哪些?
以下是 Python 支持的最常用的内置类型列表:
Python 的不可变内置数据类型 | Python 的可变内置数据类型 |
---|---|
数字 | 列表 |
字符串 | 字典 |
元组 | 集合 |
Q-6:如何在 Python 应用程序中查找错误或执行静态分析?
- 你可以使用 PyChecker,它是一个静态分析器。它识别 Python 项目中的错误,并揭示与样式和复杂性相关的错误。
- 另一个工具是 Pylint,它检查 Python 模块是否满足编码标准。
Q-7:什么时候使用 Python 装饰器?
Python 装饰器是在 Python 语法中进行的相对更改,用于快速调整功能。
Q-8:列表和元组的主要区别是什么?
列表和元组之间的主要区别在于前者是可变的,而元组则不是。
元组可以被散列,例如,使用它作为字典的键。
Q-9:Python 如何处理内存管理?
- Python 使用私有堆来维护其内存。因此堆包含所有 Python 对象和数据结构。这个区域只有 Python 解释器可以访问;程序员不能用。
- 它是处理私有堆的 Python 内存管理器。它为 Python 对象执行所需的内存分配。
- Python 使用内置垃圾收集器,它可以回收所有未使用的内存并将其卸载到堆空间。
Q-10:lambda 和 def 之间的主要区别是什么?
- Def 可以容纳多个表达式,而 lambda 是一个单表达式函数。
- Def 生成一个函数并指定一个名称以便稍后调用它。Lambda 形成一个函数对象并返回它。
- def 可以有一个 return 语句。Lambda 不能有 return 语句。
- Lambda 支持在列表和字典中使用。
Q-11:用 python reg表达式模块"re"编写一个reg 表达式来验证电子邮件 ID
Python 有一个正则表达式模块“re”。
查看可以检查 .com 和 .co.in 子域的电子邮件 ID的“re”表达式。
import re
print(re.search(r"[0-9a-zA-Z.]+@[a-zA-Z]+\.(com|co\.in)$","micheal.pages@mp. com"))
Q-12:你认为以下代码片段的输出是什么?代码中有错误吗?
list = ['a', 'b', 'c', 'd', 'e']
print (list[10:])
以上代码行的结果是[]。不会有任何类似 IndexError 的错误。
你应该知道尝试使用超过成员计数的索引从列表中获取成员(例如,尝试访问问题中给出的 list[10])会产生 IndexError。顺便说一下,仅检索超过 no 的起始索引处的切片。列表中的项目不会导致 IndexError。它只会返回一个空列表。
Q-13:Python 中有 switch 或 case 语句吗?如果不是,那么相同的原因是什么?
没有,Python 中没有 Switch 语句,但是你可以编写一个 Switch 函数然后使用它。
Q-14:Python 用来迭代数字序列的内置函数是什么?
Range() 生成一个数字列表,用于迭代 for 循环。
for i in range(5):
print(i)
range() 函数带有两组参数。
范围(停止)
- 停止:它是没有。要生成并从零开始的整数。例如。范围(3) == [0, 1, 2]。
范围([开始],停止[,步骤]) - 开始:这是起始编号。的序列。
- 停止:它指定序列的上限。
- Step:生成序列的增量因子。
注意事项: - 只允许整数参数。
- 参数可以是正数或负数。
- Python 中的range()函数从第零个索引开始。
Q-15:Python 的 try-except 块中可能有哪些可选语句?
你可以在try-except 块中使用两个可选子句。
“ else” 子句
- 如果你想在 try 块未创建异常时运行一段代码,这将很有用。
“finally” 子句 - 当你想执行一些运行的步骤时,不管是否发生异常它都有用。
Q-16:Python 中的字符串是什么?
Python 中的字符串是一系列字母数字字符。它们是不可变的对象。这意味着它们一旦被赋值就不允许修改。Python 提供了多种方法,例如 join()、replace() 或 split() 来更改字符串。但是这些都没有改变原始对象。
Q-17:Python 中的切片是什么?
切片是一种字符串操作,用于提取字符串的一部分,或列表的某些部分。在 Python 中,一个字符串(比如文本)从索引 0 开始,第 n 个字符存储在位置 text[n-1]。Python 还可以在负数的帮助下执行反向索引,即反向索引。在 Python 中, slice() 也是一个生成切片对象的构造函数。结果是 range(start, stop, step) 提到的一组索引。slice() 方法允许三个参数。1. start – 切片开始的起始编号。2. stop – 表示切片结束的数字。3. step – 在每个索引后递增的值(默认值 = 1)。
Q-18:Python 中的 %s 是什么?
Python 支持将任何值格式化为字符串。它可能包含相当复杂的表达式。
一种常见的用法是将值推送到带有 %s 格式说明符的字符串中。Python 中的格式化操作与 C 函数 printf() 具有类似的语法。
Q-19:字符串在 Python 中是不可变的还是可变的?
Python 字符串确实是不可变的。
让我们举个例子。我们有一个保存字符串值的“str”变量。我们不能改变容器,即字符串,但可以修改它包含的内容,即变量的值。
Q-20:Python 中的索引是什么?
索引是一种整数数据类型,表示有序列表或字符串中的位置。
在 Python 中,字符串也是字符列表。我们可以使用从零开始到长度减一的索引来访问它们。
例如,在字符串“Program”中,索引是这样发生的:
Program 0 1 2 3 4 5
🥇 评论区抽粉丝送书啦
💌 欢迎大家在评论区提出意见和建议!(抽两位幸运儿送书,实物图如下)💌
《Python最优化算法实战》
【内容简介】
《Python 入门到人工智能实战》本书以理论结合编程开发为原则,使用Python作为开发语言,讲解优化算法的原理和应用,详细介绍了Python基础、Gurobi 优化器、线性规划、整数规划、多目标优化、动态规划、图与网络分析、智能优化算法。对于算法部分的每一种算法都包含原理和编程实践,使读者对优化算法的认识更加深入。
本书分为 3 篇共 9 章。第 1 篇(第 1~3 章)是优化算法与编程基础:第 1 章介绍了什么是*化算法及其在生产和生活中的应用;第 2章介绍Python编程基础和Python数据分析库及绘图库;第 3章讲解Gurobi 优化器的基础和高级特性。第 2篇(第 4~6章)是数学规划方法:第 4章详细讲解线性规划的知识,包括单纯形法、内点法、列生成法、拉格朗日乘子法、对偶问题;第 5 章讲解整数规划解法的分支定界法和割平面法;第 6 章讲解多目标优化的概念及基于单纯形法的目标规划法。第 3 篇(第 7~9 章)是启发式算法:第 7 章介绍动态规划算法;第 8 章讲解图与网络分析,介绍最小生成树、最短路径、网络流、路径规划等问题的建模;第 9 章讲解了粒子群算法和遗传算法求解各种类型优化算法问题的方法。
也有不想靠抽,想自己买的同学可以参考下面的链接
京东自营购买链接:
当当自营购买链接:
📣 注意:
大家点赞关注,三天后也就是 10月6日 从评论区留言的同学中抽取两位送书
🌊 行业资料:精品PPT模板几千套,简历模板一千多套
🌊 面试题库:Java核心知识点大全和面试真题资料
🌊 学习资料:2300套PHP建站源码,微信小程序入门资料,Python全集(400集)
如果中奖了联系不上则视为放弃,可以从下方公众号里找到作者的联系方式,每周都会送四本书,后面送书力度还会加大,一年送几百上千本不是问题,回复【进群】领书不迷路,群内 每位成员 我都会送一本。回复【资源】可获取上面的资料👇🏻👇🏻👇🏻
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!