2025 年顶尖 Python 面试题及答案 (PDF)
以下是为应届生和有经验的候选人准备的 Python 面试题及答案,助您获得梦想的工作。
应届生 Python 基础面试题
1) Python 是什么?使用 Python 有什么好处?
Python 是一种面向对象的编程语言,具有模块、线程、异常处理和自动内存管理。Python 的优点是它简单易学、可移植、可扩展、内置数据结构丰富且开源。
2) 什么是 PEP 8?
PEP 8 是一个编码约定,一套关于如何让您的 Python 代码更易读的建议。
3) 什么是 pickling 和 unpickling?
Pickle 模块接受任何 Python 对象,并将其转换为字符串表示形式,然后通过 dump 函数将其转储到文件中。这个过程称为 pickling。而从存储的字符串表示中检索原始 Python 对象的过程称为 unpickling。
4) Python 是如何解释执行的?
Python 是一种解释型语言。Python 程序直接从源代码运行。它将程序员编写的源代码转换为中间语言,中间语言又被翻译成需要执行的机器语言。
5) Python 中内存是如何管理的?
Python 内存由 Python 私有堆空间管理。所有 Python 对象和数据结构都位于私有堆中。程序员无法访问此私有堆,解释器会处理此 Python 私有堆。
Python 堆空间的分配用于 Python 对象,由 Python 内存管理器进行。核心 API 提供了一些工具供程序员编码。
Python 还拥有内置的垃圾回收器,它可以回收所有未使用的内存,释放内存并使其可用于堆空间。
6) 有哪些工具可以帮助查找 bug 或进行静态分析?
PyChecker 是一个静态分析工具,可以检测 Python 源代码中的 bug,并警告关于 bug 的风格和复杂性。Pylint 是另一个用于验证模块是否符合编码标准的工具。
7) 什么是 Python 装饰器?
Python 装饰器是我们可以在 Python 语法中进行的特定更改,以轻松修改函数。
8) List 和 Tuple 有什么区别?
List 和 Tuple 的区别在于 list 是可变的,而 tuple 是不可变的。Tuple 可以被哈希,例如,可以作为字典的键。
9) 参数是如何通过值传递或引用传递的?
Python 中的一切都是对象,所有变量都持有对象的引用。引用值根据函数而定。因此,您无法更改引用的值。但是,如果对象是可变的,您可以更改它。
10) 什么是 Dict 和 List 推导式?
它们是语法结构,用于根据现有可迭代对象轻松创建字典或列表。
11) Python 提供哪些内置类型?
Python 提供两种内置类型:1) 可变类型和 2) 不可变类型。
可变内置类型包括
- 列表
- 集合
- 字典
- 不可变内置类型
- 字符串
- 元组
- 数字
不可变内置类型包括
- 字符串
- 元组
- 数字
12) 解释 Python 中的命名空间
在 Python 中,每个引入的名称都有一个存储它的地方,可以供查找。这就是所谓的命名空间。它就像一个盒子,将变量名映射到放置的对象。每当搜索变量时,都会搜索此框以获取相应的对象。
13) Python 中的 lambda 是什么?
它是一个单表达式的匿名函数,常被用作内联函数。
14) 为什么 Python 的 lambda 形式没有语句?
Python 的 lambda 形式没有语句,因为它用于在运行时创建新的函数对象然后返回它们。
15) 解释 Python 中的 pass
Pass 表示无操作的 Python 语句,换句话说,它是一个复合语句中的占位符,应该留白,而无需写入任何内容。
16) Python 中的迭代器是什么?
在 Python 中,迭代器用于迭代一组元素,如列表等容器。
17) Python 中的 unittest 是什么?
Python 中的单元测试框架称为 unittest。它支持设置的共享、自动化测试、测试的关闭代码、将测试聚合到集合中等。
18) 解释 Python 中的切片?
一种从列表、元组、字符串等序列类型中选择项目范围的机制称为切片。
19) Python 中的生成器是什么?
实现迭代器的方式称为生成器。它是一个普通的函数,但它在函数中产生表达式。
20) Python 中的 docstring 是什么?
Python 文档字符串称为 docstring,它是记录 Python 函数、模块和类的一种方式。
Python 面试题(有经验者)
21) 如何在 Python 中复制对象?
要在 Python 中复制对象,您可以尝试使用 `copy.copy()` 或 `copy.deepcopy()` 进行通用复制。您不能复制所有对象,但大多数都可以。
22) Python 中的负索引是什么?
Python 序列可以用正数和负数进行索引。对于正索引,0 是第一个索引,1 是第二个索引,依此类推。对于负索引,(-1) 是最后一个索引,(-2) 是倒数第二个索引,依此类推。
23) 如何将数字转换为字符串?
要将数字转换为字符串,请使用内置函数 `str()`。如果您想要八进制或十六进制表示,请使用内置函数 oct() 或 hex()。
24) xrange 和 range 有什么区别?
Xrange 返回 xrange 对象,而 range 返回列表,无论范围大小如何,都占用相同的内存。
25) Python 中的模块和包是什么?
在 Python 中,模块是组织程序的方式。每个 Python 程序文件都是一个模块,它导入其他模块(如对象和属性)。
Python 程序文件夹是模块的包。一个包可以包含模块或子文件夹。
26) Python 中局部变量和全局变量的规则是什么?
以下是 Python 中局部变量和全局变量的规则:
局部变量:如果在函数体内的任何地方为变量赋值,则假定它是局部的。
全局变量:仅在函数内部引用的变量隐式为全局变量。
27) 如何在模块之间共享全局变量?
要在单个程序中的模块之间共享全局变量,请创建一个特殊的模块。在应用程序的所有模块中导入 config 模块。该模块将作为全局变量在模块间可用。
28) 解释如何在 Unix 上使 Python 脚本可执行?
要在 Unix 上使 Python 脚本可执行,您需要做两件事:
脚本文件的模式必须是可执行的,并且第一行必须以 # (#!/usr/local/bin/python) 开头。
29) 解释如何删除 Python 中的文件?
使用命令 `os.remove(filename)` 或 `os.unlink(filename)`。
30) 解释如何在 Python 中生成随机数?
要在 Python 中生成随机数,您需要导入命令,例如:
import random random.random()
这会在 [0,1) 范围内返回一个随机浮点数。
31) 如何从 C 访问用 Python 编写的模块?
您可以通过以下方法从 C 访问用 Python 编写的模块:
Module = PyImport_ImportModule("
32) Python 中的 // 运算符有什么用?
它是地板除运算符,用于除以两个操作数,结果为商,只显示小数点前的数字。例如,10//5 = 2 且 10.0//5.0 = 2.0。
33) 提及使用 Python 的五个好处
以下是使用 Python 的五个好处:
- Python 包含一个巨大的标准库,适用于大多数 Internet 平台,如电子邮件、HTML 等。
- Python 不需要显式内存管理,因为解释器本身会自动为新变量分配内存并自动释放它们。
- 由于使用了方括号,提供了易于阅读性。
- 对初学者来说容易学习。
- 拥有内置的数据类型可以节省编程时间,避免了声明变量的麻烦。
34) 提及 Python split 函数的用法
Python split 函数的用法是它使用定义的分隔符将字符串分解成更短的字符串。它会给出字符串中所有单词的列表。
35) Django、Pyramid 和 Flask 有什么区别?
Flask 是一个“微框架”,主要为具有更简单需求的应用程序构建。在 Flask 中,您不必使用外部库。Flask 已准备好使用。
Pyramids 用于构建大型应用程序。它提供了灵活性,并允许开发人员为其项目使用正确的工具。开发人员可以选择数据库、URL 结构、模板样式等。像 Pyramid 一样,Django 也可用于大型应用程序。它包含一个 ORM。
Python Flask 面试题及答案
36) 解释 Flask 及其优点
Flask 是一个基于“Werkzeug、Jinja 2 和良好意图” BSD 许可的 Python Web 微框架。Werkzeug 和 Jinja 是它的两个依赖项。
Flask 是微框架的一部分。这意味着它对外部库的依赖性很小或没有依赖性。这使得框架轻巧,依赖性少,需要更新的也少,并且安全漏洞也少。
37) 什么是 Flask-WTF 及其特性?
Flask-WTF 提供了与 WTForms 的简单集成。Flask WTF 的功能包括:
- 与 WTFforms 的集成
- 安全的表单,带 CSRF 令牌
- 全局 CSRF 保护
- 国际化集成
- Recaptcha 支持
- 文件上传(与 Flask Uploads 配合使用)
38) 解释 Flask 脚本的常见工作方式?
Flask 脚本的常见工作方式是:
- 它应该是您应用程序的导入路径
- 或者到 Python 文件的路径
39) 解释如何在 Flask 中访问会话?
会话基本允许您在请求之间记住信息。在 Flask 中,它使用签名 cookie,因此用户可以查看会话内容并进行修改。用户只能在拥有 Flask 的 secret_key 的情况下修改会话。
40) Flask 是 MVC 模型吗?如果是,请举例说明应用程序的 MVC 模式?
基本上,Flask 是一个极简的框架,其行为与 MVC 框架相同。因此,MVC 是 Flask 的完美匹配,我们将考虑 MVC 模式用于以下示例:
from flask import Flask
app = Flask(_name_) @app.route("/") Def hello(): return "Hello World" app.run(debug = True) |
在此代码中,您的配置部分将是 `from flask import Flask`。app = Flask(__name__) 视图部分将是: @app.route("/") Def hello(): return "Hello World" 而您的模型或主部分将是: |
41) 解释 Python Flask 中的数据库连接?
Flask 支持数据库驱动的应用程序(RDBS)。这种系统需要创建模式,这需要通过 schema.sql 文件到 sqlite3 命令。因此,您需要安装 sqlite3 命令才能在 Flask 中创建或初始化数据库。
Flask 允许通过三种方式请求数据库:
- before_request():在请求之前调用,不接受任何参数。
- after_request():在请求之后调用,并传递将发送到客户端的响应。
- teardown_request():在发生异常且不保证响应的情况下调用。它们在响应构造后被调用。它们不允许修改请求,并且其值被忽略。
42) 如果有多个 Memcache 服务器,其中一个包含数据的服务器发生故障,它会尝试获取它们吗?
故障服务器中的数据不会被删除,但提供了自动故障转移的机制,您可以配置多个节点。在任何类型的套接字或 Memcached 服务器级别错误发生时都可以触发故障转移,而不是在添加现有键等正常客户端错误期间。
43) 解释如何在 Python 开发中最小化 Memcached 服务器停机时间?
- 当一个实例失败时,几个实例会宕机,这会将更大的负载放在数据库服务器上,当丢失的数据重新加载时,客户端会发出请求。为避免这种情况,如果您的代码已编写以最大程度地减少缓存浪涌,则影响会最小。
- 另一种方法是在新机器上使用丢失机器的 IP 地址启动 memcached 实例。
- 代码是最小化服务器停机时间的另一个选项,因为它让您能够以最少的工作量更改 Memcached 服务器列表。
- 设置超时值是某些 Memcached 客户端为 Memcached 服务器停机实现的另一个选项。当您的 Memcached 服务器宕机时,客户端会持续尝试发送请求,直到达到超时限制。
44) 解释什么是 Dogpile 效应?如何防止这种效应?
Dogpile 效应是指缓存过期时,网站会受到客户端同时发出的多个请求的冲击。这种效应可以通过使用信号量锁来防止。在此系统中,当值过期时,第一个进程会获取锁并开始生成新值。
45) 解释在 Python 项目中不应如何使用 memcached?
以下是在 Python 项目中不应使用 memcached 的方法:
- Memcached 的常见误用是将其用作数据存储而不是缓存。
- 切勿将 Memcached 作为运行应用程序所需信息的唯一来源。数据应始终通过另一个来源提供。
- Memcached 只是一个键值存储,无法对数据执行查询或迭代内容以提取信息。
- Memcached 不提供任何形式的加密或身份验证安全。
Python 编程面试题
46) 什么是 Python If 语句?
Python if 语句用于决策操作。它包含一个代码块,该代码块仅在 if 语句中给出的条件为真时运行。如果条件为假,则执行可选的 else 语句,其中包含 else 条件的一些代码。
当您想在另一个条件不为真时证明一个条件时,您会使用 Python if-else 语句。
Python if 语句语法
if 表达式
语句
else
语句
Python if…else 流程图
让我们看一个 Python if else 语句的示例。
让我们看一个 Python if else 语句的示例。
def main(): x,y =2,8 if(x < y): st= "x is less than y" print(st) if __name__ == "__main__": main()
47) 用示例解释 Python 中的 While 循环
While 循环所做的与“if 语句”完全相同,但它们不是只运行一次代码块,而是跳回到代码开始的地方并重复整个过程。
while 循环的语法如下:
while 表达式
语句
while 循环的示例如下:
x=0 #define a while loop while(x <4): print(x) x = x+1
48) Python 中的 enumerate() 是什么?
Python 中的 Enumerate() 是一个内置函数,用于为可迭代对象的每个项目分配索引。它在可迭代对象上添加一个循环,同时跟踪当前项目,并以可枚举的形式返回对象。该对象可以在 for 循环中使用,通过使用 list() 方法将其转换为列表。
enumerate() 的示例如下:
假设我们要为月份(一月、二月、三月……六月)编号,那么我们声明变量 i 来枚举数字,而 m 将打印列表中的月份数。
#use a for loop over a collection Months = ["Jan","Feb","Mar","April","May","June"] for i, m in enumerate (Months): print(i,m) # use the break and continue statements #for x in range (10,20): #if (x == 15): break #if (x % 5 == 0) : continue #print x
49) 如何使用 for 循环一遍又一遍地重复相同的语句?
您也可以使用 for 循环一遍又一遍地重复相同的语句。在下面的示例中,我们打印了三次“guru99”这个词。
示例
要重复相同的语句多次,我们已将数字声明在变量 i(i in 123)中。因此,当您运行如下代码时,它会打印(guru99)语句的次数与变量 i(i in 123)声明的数字相同。
for i in '123': print ("guru99",i,)
50) Python 中的元组匹配是什么?
Python 中的元组匹配是通过匹配元组中的第二个元素来对元组进行分组的一种方法。这可以通过使用字典在 Python 编程中检查每个元组中的第二个元素来实现。但是,我们可以通过获取现有元组的部分来创建新的元组。
语法
Tup = ('Jan','feb','march')
要编写一个空元组,您需要写成两个不包含任何内容的括号:
tup1 = ();
51) 用示例解释 Python 中的字典
Python 中的字典是无序且可变的键值对数据集合。字典中的每个键值对都将键映射到其关联值,从而使其更优化。Python 字典通过大括号 ({}) enclosing comma-separated key-value pairs 来声明。Python 字典分为两个元素:键和值。
Python 字典语法
Dict = { ' Tim': 18, xyz,.. }
示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print((Dict['Tiffany']))
52) 如何将整个字典复制到新字典?
您也可以将整个字典复制到新字典。例如,在这里我们将原始字典复制到了名为“Boys”和“Girls”的新字典中。
示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} studentX=Boys.copy() studentY=Girls.copy() print(studentX) print(studentY)
53) 如何更新 Python 字典?
您可以通过添加新条目或键值对到现有条目,或者通过删除现有条目来更新字典。在下面的示例中,我们将另一个名字“Sarah”添加到我们现有的字典中。
示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Dict.update({"Sarah":9}) print(Dict)
54) dictionary items() 方法示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("Students Name: %s" % list(Dict.items()))
55) 如何对 Python 字典中的元素进行排序?
在字典中,您可以轻松地对元素进行排序。例如,如果我们想按字母顺序列出字典中的元素名称,我们必须使用 for 循环。它将相应地对字典的每个元素进行排序。
示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} Students = list(Dict.keys()) Students.sort() for S in Students: print(":".join((S,str(Dict[S]))))
56) 给出 Dictionary len() 和 Python List cmp() 方法的示例
Dictionary len() 示例
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("Length : %d" % len (Dict))
cmp() 示例
Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} print cmp(Girls, Boys)
57) 有哪些字典方法?
这是字典方法的列表:
- copy()
- update()
- items()
- sort()
- len()
- cmp()
- Str()
58) 解释算术运算符及示例
算术运算符执行各种算术计算,如加法、减法、乘法、除法、%模运算、幂运算等。Python 中有多种进行算术计算的方法,例如您可以使用 eval 函数、声明变量并计算、或者调用函数。
示例:对于算术运算符,我们将以加法为例,将两个数字相加 4+5=9。
x= 4 y= 5 print(x + y)
59) 给出逻辑运算符的示例
逻辑运算符示例
a = True b = False print(('a and b is',a and b)) print(('a or b is',a or b)) print(('not a is',not a))
60) 解释成员运算符及示例
这些运算符用于测试序列(如列表、字符串或元组)中的成员资格。Python 中使用两个成员运算符(in、not in)。它根据变量是否存在于指定的序列或字符串中来给出结果。
示例
例如,在这里我们使用 in 和 not in 运算符检查列表是否存在 x=4 和 y=8 的值。
x = 4 y = 8 list = [1, 2, 3, 4, 5 ]; if ( x in list ): print("Line 1 - x is available in the given list") else: print("Line 1 - x is not available in the given list") if ( y not in list ): print("Line 2 - y is not available in the given list") else: print("Line 2 - y is available in the given list")
61) 编写代码演示 Python 中的运算符优先级
v = 4 w = 5 x = 8 y = 2 z = 0 z = (v+w) * x / y; print("Value of (v+w) * x/ y is ", z)
62) 用示例解释 Python 中的数组
Python 数组是具有相同数据类型的通用数据结构集合。它用于存储数据集合。在 Python 编程中,数组由“array”模块处理。如果您使用 array 模块创建数组,则数组的元素必须是相同的数字类型。
Python 中创建数组的语法
您可以在初始化 Python 数组时使用以下语法进行声明。
arrayName = array.array(type code for data type, [array,items])
下图解释了语法。
- 标识符:指定一个名称,就像您通常为变量命名一样
- 模块:Python 有一个用于在 Python 中创建数组的特殊模块,称为“array”——在使用它之前您必须导入它。
- 方法:array 模块有一个初始化数组的方法。它接受两个参数:类型代码和元素。
- 类型代码:使用可用类型代码指定数据类型(请参阅下面的列表)。
- 元素:在方括号内指定数组元素,例如 [130,450,103]
示例
import array as myarray abc = myarray.array('d', [2.5, 4.9, 6.7])
63) 如何访问数组元素?
您可以使用索引访问任何数组项。
语法是
arrayName[indexNum]
示例
import array balance = array.array('i', [300,200,100]) print(balance[1])
64) 如何向数组中插入元素?
Python 数组插入操作使您可以在数组的开头、结尾或任何给定索引处插入一个或多个项。此方法需要两个参数:索引和值。
语法是
arrayName.insert(index, value)
示例
让我们在第二个项目之后添加一个新值。目前,我们的 balance 数组有三个项目:300、200 和 100。考虑值为 200 和索引 1 的第二个数组项。
为了在索引 1 的“之后”插入新值,您需要在 insert 方法中引用索引 2,如下面的 Python 数组示例所示。
import array balance = array.array('i', [300,200,100]) balance.insert(2, 150) print(balance)
65) 如何删除数组中的元素?
通过此操作,您可以按值从数组中删除一个项目。此方法仅接受一个参数:值。运行此方法后,数组项将被重新排列,并且索引将被重新分配。
语法是
arrayName.remove(value)
示例
让我们从数组中删除值“3”。
import array as myarray first = myarray.array('b', [2, 3, 4]) first.remove(3) print(first)
66) 如何搜索数组中的值并获取其索引?
通过此操作,您可以根据值在数组中搜索项目。此方法仅接受一个参数:值。它是一个非破坏性方法,这意味着它不会影响数组值。
语法是
arrayName.index(value)
示例
让我们查找数组中的值“3”。此方法返回搜索值的索引。
import array as myarray number = myarray.array('b', [2, 3, 4, 5, 6]) print(number.index(3))
67) 如何在 Python 中反转数组?
您可以使用 reverse() 在 Python 中反转数组。
示例
import array as myarray number = myarray.array('b', [1,2, 3]) number.reverse() print(number)
68) 给出将数组转换为 Unicode 的示例
将数组转换为 Unicode 的示例是:
from array import array p = array('u',[u'\u0050',u'\u0059',u'\u0054',u'\u0048',u'\u004F',u'\u004E']) print(p) q = p.tounicode() print(q)
69) 给出 Python 类的示例
Python 类的示例
# Example file for working with classes class myClass(): def method1(self): print("Guru99") def method2(self,someString): print("Software Testing:" + someString) def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main()
70) 解释继承并举例
继承是面向对象编程中的一项特性;它指的是通过很少或不修改现有类来定义新类。新类称为派生类,它继承的类称为基类。Python 支持继承;它还支持多重继承。一个类可以从另一个称为子类或继承类的类继承属性和行为方法。
继承示例
# Example file for working with classes class myClass(): def method1(self): print("Guru99") class childClass(myClass): #def method1(self): #myClass.method1(self); #print ("childClass Method1") def method2(self): print("childClass method2") def main(): # exercise the class methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
71) 给出 Python 构造函数的示例
Python 构造函数的示例
class User: name = "" def __init__(self, name): self.name = name def sayHello(self): print("Welcome to Guru99, " + self.name) User1 = User("Alex") User1.sayHello()
72) 如何访问字符串中的值?
Python 不支持字符类型,它们被视为长度为一的字符串,也作为子字符串。您可以使用方括号进行切片,并使用索引或索引来获取子字符串。
您可以使用方括号进行切片,并使用索引或索引来获取子字符串。
var1 = "Guru99!" var2 = "Software Testing" print ("var1[0]:",var1[0]) print ("var2[1:5]:",var2[1:5])
73) 解释所有字符串运算符及示例
字符串运算符及示例
运算符 | 描述 | 示例 |
---|---|---|
[] | 切片 - 它从给定索引获取字母 | a[1] 将从单词 Guru 中获得“u”,如下所示(0=G,1=u,2=r,3=u)。 |
[ : ] | 范围切片 - 它从给定范围获取字符 | x [1:3] 将从单词 Guru 中获得“ur”。请记住,它不包括 0(即 G),它会考虑其后的单词 ur。 |
in | 成员资格 - 如果一个字母存在于给定的字符串中,则返回 true。 | u 存在于单词 Guru 中,因此它将给出 1 (True)。 |
not in | 成员资格 - 如果一个字母不存在于给定的字符串中,则返回 true。 | l 不存在于单词 Guru 中,因此它将给出 1。 |
r/R | 原始字符串会抑制转义字符的实际含义。 | Print r’\n’ 打印 \n,而 print R’/n’ 打印 \n。 |
% - 用于字符串格式化 | %r - 它插入对象的规范字符串表示形式(即 repr(o)) %s - 它插入对象的呈现字符串表示形式(即 str(o)) %d - 它将格式化数字以供显示。 | 此代码的输出将是“guru 99”。 |
+ | 它连接 2 个字符串。 | 它连接字符串并给出结果。 |
* | 重复 | 它将字符打印两次。 |
74) 给出 Python sleep() 函数的示例
Python sleep() 函数的示例
import time print("Welcome to guru99 Python Tutorials") time.sleep(5) print("This message will be printed after a wait of 5 seconds")
75) Python 中的定时器方法是什么?
Timer 是 Threading 模块提供的一种方法,它有助于获得与 Python time sleep 相同的功能。
from threading import Timer print('Code Execution Started') def display(): print('Welcome to Guru99 Tutorials') t = Timer(5, display) t.start()
76) 给出日历类的示例
日历类的示例
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print(str) # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print(str) # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print(i) # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print(name) for day in calendar.day_name: print(day) # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print("%10s %2d" % (calendar.month_name[month], auditday))
77) 解释 Python ZIP 文件及示例
Python 允许您快速创建 zip/tar 存档。
以下命令将压缩整个目录:
shutil.make_archive(output_filename, 'zip', dir_name)
以下命令让您控制要归档的文件:
ZipFile.write(filename)
Python ZIP 文件示例
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive","zip",root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip", "w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak")
78) Python 中常见的异常有哪些?
Python 中常见的异常包括:
- 除以零
- 访问不存在的文件。
- 加两个不兼容的类型
- 尝试访问序列中不存在的索引
- 从已断开连接的数据库服务器中删除表。
- ATM 取款金额超过可用金额
79) 解释重要的 Python 错误
重要的 Python 错误有 1) ArithmeticError、2) ImportError 和 3) IndexError。
- ArithmeticError:ArithmeticError 是所有算术异常的基类。它在算术运算中出现错误时引发。
- ImportError:当您尝试导入不存在的模块时,会引发 ImportError。这种异常发生在您键入模块名错误或模块不存在于标准路径中时。
- IndexError:当您尝试引用超出范围的序列时,会引发 IndexError。
80) 详细解释 Python 中的 JSON dumps() 及示例
json.dumps() 在 Python 中是一个将 Python 字典对象转换为 JSON 字符串数据格式的方法。当需要将对象转换为字符串格式以进行解析、打印等操作时,它很有用。
示例
import json x = { "name": "Ken", "age": 45, "married": True, "children": ("Alice","Bob"), "pets": ['Dog'], "cars": [ {"model": "Audi A1", "mpg": 15.1}, {"model": "Zeep Compass", "mpg": 18.1} ] } # sorting result in asscending order by keys: sorted_string = json.dumps(x, indent=4, sort_keys=True) print(sorted_string)
81) 详细解释 JSON 到 Python(解码)及示例
JSON 字符串解码是通过 Python 的 JSON 库内置方法 `json.loads()` 和 `json.load()` 完成的。
这里的转换表展示了 JSON 对象到 Python 对象的示例,这些示例有助于在 Python 中对 JSON 字符串进行解码。
JSON | Python |
---|---|
对象 | 字典 |
数组 | 列表 |
字符串 | Unicode |
数字 – int | 数字 – int、long |
数字 – real | Float |
真 | 真 |
假 | 假 |
Null | 无 |
使用 json.loads 函数进行 JSON 到 Python 解码的基本示例。
import json # json library imported # json data string person_data = '{ "person": { "name": "Kenn", "sex": "male", "age": 28}}' # Decoding or converting JSON format in dictionary using loads() dict_obj = json.loads(person_data) print(dict_obj) # check type of dict_obj print("Type of dict_obj", type(dict_obj)) # get human object details print("Person......", dict_obj.get('person'))
82) 编写 encode() 方法的代码
encode() 方法的代码
# import JSONEncoder class from json from json.encoder import JSONEncoder colour_dict = { "colour": ["red", "yellow", "green" ]} # directly called encode method of JSON JSONEncoder().encode(colour_dict)
83) 编写 Python 代码使用 numpy 数组创建 Python 矩阵
使用 numpy 数组创建 Python 矩阵的代码
import numpy as np M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]]) print(M1)
84) 编写 Python 代码进行矩阵减法
Python 矩阵减法代码
import numpy as np M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]]) M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]]) M3 = M1 - M2 print(M3)
85) 编写矩阵乘法的代码
矩阵乘法代码
import numpy as np
M1 = np.array([[3, 6], [5, -10]]) M2 = np.array([[9, -18], [11, 22]]) M3 = M1.dot(M2) print(M3)
86) 解释矩阵切片及示例
切片将根据给定的起始/结束索引返回矩阵中的元素。
切片的语法是:
[start:end]
- 如果未给出起始索引,则默认为 0。例如 [:5],表示 [0:5]。
- 如果未传递结束索引,则将其视为数组的长度。
- 如果起始/结束索引为负值,则切片将从数组末尾开始。
在我们对矩阵进行切片操作之前,让我们先了解如何在简单数组上应用切片。
import numpy as np arr = np.array([2,4,6,8,10,12,14,16]) print(arr[3:6]) # will print the elements from 3 to 5 print(arr[:5]) # will print the elements from 0 to 4 print(arr[2:]) # will print the elements from 2 to length of the array. print(arr[-5:-1]) # will print from the end i.e. -5 to -2 print(arr[:-1]) # will print from end i.e. 0 to -2
87) 编写 Python 代码通过循环查找平均值
这里是查找平均值的代码:
def cal_average(num): sum_num = 0 for t in num: sum_num = sum_num + t avg = sum_num / len(num) return avg print("The average is", cal_average([18,25,3,41,5]))
88) 编写列表计数代码
这是列表计数代码:
list1 = ['red', 'green', 'blue', 'orange', 'green', 'gray', 'green'] color_count = list1.count('green') print('The count of color: green is ', color_count)
89) 如何计算列表中重复的元素?
计算列表中重复的元素。
list1 = [2,3,4,3,10,3,5,6,3] elm_count = list1.count(3) print('The count of element: 3 is ', elm_count)
90) 编写代码使用 for 循环获取列表中元素的索引
使用 for 循环获取列表中元素的索引的代码
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] all_indexes = [] for i in range(0, len(my_list)) : if my_list[i] == 'Guru' : all_indexes.append(i) print("Originallist ", my_list) print("Indexes for element Guru : ", all_indexes)
91) 给出 Python type() 的示例
str_list = "Welcome to Guru99" age = 50 pi = 3.14 c_num = 3j+10 my_list = ["A", "B", "C", "D"] my_tuple = ("A", "B", "C", "D") my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"} my_set = {'A', 'B', 'C', 'D'} print("The type is : ",type(str_list)) print("The type is : ",type(age)) print("The type is : ",type(pi)) print("The type is : ",type(c_num)) print("The type is : ",type(my_list)) print("The type is : ",type(my_tuple)) print("The type is : ",type(my_dict)) print("The type is : ",type(my_set))
92) 如何在 Python 中打印而不换行?
从 Python 3+ 开始,print() 中引入了一个额外的参数,称为 end=。此参数负责删除 print() 默认添加的换行符。
在下面的 Python 3 示例中,我们希望字符串打印在同一行。要实现这一点,只需在 print() 中添加 end="" 即可,如下面的示例所示。
print("Hello World ", end="") print("Welcome to Guru99 Tutorials")
93) 如何打印星号(*)模式而不换行和空格?
打印星号(*)模式而不换行和空格的代码
for i in range(0, 20): print('*', end="")
这些面试问题也将有助于您的口试