python 两个数组相乘_面试干货:成为Python程序员的终极指南!(内附回答)

本文详细介绍了Python编程面试中的常见问题,涵盖数组相加、*args和**kwargs、模块属性检查、文字类型、元组连接、lambda函数、切片操作、装饰器、sort/sorted算法、程序调试、pickle库、列表理解等核心概念,帮助开发者提升面试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

科技行业正以前所未有的速度增长。我们看到市场上发布了新的软件产品。

无论您是初学者还是经验丰富的Python开发人员,机会都是非常多的,如何把握?。

唯一的要求:必须在Python编程面试中使用您的技能并证明自己。

1、假设我们有两个数组,如下所述。我们应该如何添加两个数组的对应项?

34a6a2bc0d5b9d6d56e2171407b4e227.png

2、什么是*args和**kwargs?给每个例子。

这两个都用于在函数中传递可变数量的参数。

我们*args用于非关键字参数,而**kwargs用于基于关键字的参数。

52e1cbd7020fd850d80968af7d7105e2.png

3、如何检查模块中所有可用的功能和属性?

我们可以在dir()函数内部传递模块名称,以检索其函数和属性的名称。

例如:

假设我们有一个名为m.py的模块,其中包含一个变量和两个用户定义的函数。

6849d9608eac18a76dfd4c97e782bc5a.png

在这里您可以看到该dir()函数还获取了所有内置的属性和方法。

4、Python中的“文字”是什么?

在Python中,文字是分配给变量或常量的数据/值。

例如,Python有四种不同类型的文字:

  • 数字文字
  • 字符串文字
  • 布尔文字
  • 特殊文字

5、如何连接两个元组?

元组的串联是指我们可以连接两个或更多元组的过程。例如,假设我们有两个元组:

41f82e8114bb732c9a40f8c415ab0a5f.png

利用加号将它们连接在一起。

此语句将tuple_2在的末尾添加的元素tuple_1。

f0983263f137c3cfee4ff362414a3299.png

像这样:

4d850a7274f3f02ee2ac5985ab89435c.png

6、Python中的lambda是什么?

Lambda是Python中的一个小函数,只能处理一个表达式。

通常,在另一个函数中使用lambda函数更合适。

可以根据需要添加任意数量的参数。使用lambda函数将14与通过参数传递的数字相乘:

a920a1d8cb5eb48b1e2dc7b64a382089.png

7、什么是切片?

切片是检索字符串,数组,列表或元组的一部分的过程。传递一个开始和结束索引来指定我们感兴趣的数据的位置。

注意:开始索引处的值包括在结果中,而结束索引处的值被排除在外。

我们甚至可以传递一个步进值来跳过一些数据。例如,从数组中检索所有其他项。

在以下代码段中,使用方括号[ ]进行切片。我们传递了三个参数,并用冒号:将它们分开。第一个参数指定切片的开始位置,第二个参数用于标记结束,最后一个参数用于定义step

7fa83ee213fd9c0944737e13326128df.png

切片的所有三个参数都是可选的。如果我们不指定起始位置,那么Python会将0索引作为起始位置。同样,当我们跳过第二个参数时,将使用数组/字符串/元组/列表的长度。而默认情况下,Python将1作为步骤。

8、什么是Python装饰器?

Python装饰器是一项功能,用于增强现有功能或类的功能。

当开发人员想要动态更新功能的工作而不实际对其进行修改时,这是首选方法。

假设我们有一个打印网站开发人员名称的函数。

但是,现在的要求是向用户显示欢迎消息,然后显示开发人员名称。

我们可以在装饰器功能的帮助下添加此功能。

8a4b1b0ecff8ad23c5a1a2d9479d870d.png

在这里welcome_user()是一个装饰器,而这dev_name()是我们动态更新的主要功能。

输出:

4da7eafcf22083678fb483abbf0b3a41.png

9、sort()和sorted()函数使用哪种算法?

sort()和sorted()函数实现Timsort算法。这是因为该排序算法非常稳定且高效。在最坏的情况下,Big O的值为O(N log N)

10、如何调试Python程序?

默认情况下,Python带有一个称为pdb的内置调试器。

我们可以通过执行类似下面提到的命令来开始调试任何Python文件。

85d2d45d8e6617ce2a40ac9fd345bd29.png

11、什么是酸洗和去渍?

在Python中,有一个非常流行的库叫做pickle。它用于对象序列化。这意味着它将Python对象作为输入并将其转换为字节流。转换Python对象的整个过程称为酸洗。

另一方面,去渍是相反的。此处,字节流被接受为输入并转换为对象层次结构。

12、什么是列表理解?并提供一个例子

列表理解是创建Python列表的快速方法。

无需手动为每个索引输入值,我们只需通过遍历数据来填充列表即可。

假设我要创建一个列表,其每个索引将按顺序包含我名字中的字母。

980663bf878ac570ef27253074ecaec5.png

13、(i for i in (54, 6, 71))是元组理解吗?

在Python中,没有这样的元组理解概念。

14、什么是Python中的猴子补丁?

在运行时动态更改类或模块的过程称为“猴子修补”。

509131300d056ad7a9ce9ff4c6f9e36b.png

实际上调用过func()method,但是我收到的输出来自welcome()?

15、预测以下代码的输出?然后解释你的答案

c6bba3c4e52f406a0e621060cb6696b3.png

说明:

该代码中的主要混淆点在最后一条print()语句中。

在打印之前,我们只是更新x了Parent该类中的值。它会自动更新的值,Child_2.x但不会更新Child_1.x。这是因为我们已经设置了的值Child_1.x。

换句话说,Python首先尝试使用子类的属性/方法。如果在子类中找不到属性/方法,则仅搜索父类。

16、如何在二叉树中显示给定节点的祖先?

假设我们有这个二叉树。现在,检索65的祖先,并使用Python代码显示它们。

81ff397bafdd0e42feba0ced9659c971.png

04629cf08cd811615c639617791c2ab7.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值