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

Posted 二哥不像程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础面试题解读|《Python面试100层》|第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)的运行结果为?

解析
本题在于考察Python中复数的运算,对于abs(3+4j来说,结果可以等价于 3 2 + 4 2 = 5 \\sqrt{3^2+4^2}=5 32+42 =5,由于复数在Python中为浮点型,最终的结果应为5.0

题目五

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

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. {1,2,3}=={1,3,2}
  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

🌜连载中......🌛
❤️整理不易,点个赞吧❤️

以上是关于Python基础面试题解读|《Python面试100层》|第1层的主要内容,如果未能解决你的问题,请参考以下文章

python面试题基础部分 80题

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第一弹:Python 基础面试题(附答案)

最强面试题整理第一弹:Python 基础面试题(附答案)

python 面试题