Python基础面试题解读|《Python面试100层》|第1层

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 💎大家好,欢迎来到二哥的一亩三分地。最近又到了秋招的季节,很多小伙伴们纷纷反映在面试Python的时候顺着面试官的坑就跳下去了,为了避免大家频繁踩坑,二哥准备开放专栏《Python面试100层》(一共1000道题),每篇10道精选面试题解读,希望小伙伴们能够跟上我的脚步一层一层的闯下去!

题目一

对于Python中的表达式{1,2,3,4,5}-{3,4,5,6,7}的结果是?

解析

本题的考察点在于对集合运算的掌握,很多人在使用Python中的集合只是为了得到去重后的数据而忽略其计算法则,对于集合我们可以进行& 交集,| 并集,- 差集,^ 异或集,对于题目中给出的集合,四种运算的结果如下:


交集 & :两个集合中共同含有的元素。

print({1, 2, 3, 4, 5} & {3, 4, 5, 6, 7})
# 运行结果
{3, 4, 5}

并集 | :两个集合中所有的元素。

print({1, 2, 3, 4, 5} | {3, 4, 5, 6, 7})
# 运行结果
{1, 2, 3, 4, 5, 6, 7}

差集 - :第一个集合中的元素去掉两个集合重复的元素。

print({1, 2, 3, 4, 5} - {3, 4, 5, 6, 7})
# 运行结果
{1, 2}

异或集 | :两个集合中不重复的元素。

print({1, 2, 3, 4, 5} ^ {3, 4, 5, 6, 7})
# 运行结果
{1, 2, 6, 7}

本题答案

{1 ,2}


题目二

写代码:使用Python列表生成式得到100以内(包括100)所有能被2整除的自然数。

解析

列表生成式可以让我们使用极简的一行代码去生成列表,但在实际应用中很多人更喜欢按照标准的语句去写代码,因而忽略列表生成式的实现方式。本题的答案可以写成如下的格式:

[i for i in range(101) if i % 2 == 0]

生成式解读

i:用于生成列表元素的变量;

for i in range(101):用于循环产生生成列表的范围;

if i % 2 == 0:生成元素所需的条件。

注意:本题中需要100以内的数据,因此range中需要填入101。


题目三

下列代码的运行结果是:

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(x[10:])

解析

对于本题,多数人给出的答案就是报错(列表越界问题),但是此写法在Python中是一种Bug的存在,最终的输出结果为空列表[]

注意:答10的小伙伴们,注意Python索引是从0开始的。


题目四

Python中abs(3+4j)的运行结果为?

image.png

题目五

下列代码最终的输出结果为?

str1 = 'erge zuishuai'
str1.replace('zuishuai', 'zuichou')
print(str1)

解析

本题在于考察Python中字符串本身的特性,对于Python来说字符串是一种不可变的数据类型,因此当只对字符串执行replace操作时,字符串本身的值并不会发生变化,最终打印的结果为erge zuishuai(二哥的帅是不可撼动的)。这里想要改变字符串的值在replace的同时对字符串重新进行赋值即可。


题目六

对于列表lst=[1,2,3],执行代码lst[:3]=[4]后打印列表的结果为?

解析

本题在于考察Python中列表的基本概念,很多人会将此题的结果回答为[1,2,3,4],需要注意的是题目中给出的条件是将切片lst[:3]的结果替换为[4]也就是将[1,2,3]替换为[4],因此本题的打印结果应为[4]


题目七

对于列表lst=[[1]]*3,执行代码x[0][0]=7后打印列表的结果为?

解析

使用题目中的方式创建二维列表的时候,创建后的结果为[[1], [1], [1]],对于此种方式创建的结果,三个[1]指向了同一块内存,因此当改变任意一个[1]的值的时候,三个值都会被改变,因此结果为[[7], [7], [7]]。


题目八

下列代码中结果为True的语句是?

{1,2,3}=={1,3,2}

[1,2,3]==[1,3,2]

解析

本题在于考察对于列表和集合的理解,在Python中集合是无序的,而列表是有序的,对于有序列表的==判断来说,必须要满足数值+位置都是相同的才能为True,而集合只需满足两个集合中数值相同即可。


题目九

Python中(1)+(2)的结果为?

解析

错误的解题思路:()表示元组,元组(1)和元组(2)相加的结果是(1,2)

上述思路的正确题目:(1,)+(2,);在使用单个数字定义元组时,需要在数字后添加,。

正确答案:(1)+(2)=3


题目十

Python表达式sum(range(10))的运行结果是?

解析

本题在于考察Python中对于range()函数的理解,range()返回一个可迭代对象,range(10)返回自然数0-9,最终进行sum运算的结果为45


相关文章
|
2月前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
2月前
|
Java C++ Python
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
【面试宝典】深入Python高级:直戳痛点的题目演示(下)
|
2月前
|
设计模式 Unix Python
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
【面试宝典】深入Python高级:直戳痛点的题目演示(上)
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。
【7月更文挑战第5天】了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。数据预处理涉及缺失值(dropna(), fillna())和异常值处理。使用describe()进行统计分析,通过Matplotlib和Seaborn绘图。回归和分类分析用到Scikit-learn,如LinearRegression和RandomForestClassifier。
105 3
|
5月前
|
存储 安全 Java
Java面试题:Java内存管理、多线程与并发框架:一道综合性面试题的深度解析,描述Java内存模型,并解释如何在应用中优化内存使用,阐述Java多线程的创建和管理方式,并讨论线程安全问题
Java面试题:Java内存管理、多线程与并发框架:一道综合性面试题的深度解析,描述Java内存模型,并解释如何在应用中优化内存使用,阐述Java多线程的创建和管理方式,并讨论线程安全问题
45 0
|
5月前
|
存储 并行计算 安全
Java面试题:Java内存管理、多线程与并发框架的面试题解析与知识点梳理,深入Java内存模型与垃圾回收机制,Java多线程机制与线程安全,Java并发工具包与框架的应用
Java面试题:Java内存管理、多线程与并发框架的面试题解析与知识点梳理,深入Java内存模型与垃圾回收机制,Java多线程机制与线程安全,Java并发工具包与框架的应用
82 0
|
5月前
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
|
5月前
|
存储 算法 索引
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
|
存储 iOS开发 MacOS
100 个基本 Python 面试问题第四部分(57-68)
100 个基本 Python 面试问题第四部分
161 0
100 个基本 Python 面试问题第四部分(57-68)
|
监控 大数据 Python
100 个基本 Python 面试问题第七部分(91-100)
100 个基本 Python 面试问题第七部分
174 0