python面试基础题,python面试笔试题
在刚刚过去的2021年,Python获得了年度TIOBE编程语言奖,成为过去一年最受欢迎的编程语言。它广泛应用于数据科学和机器学习领域。
在备考《金三银四》中,自然整理了50个Python面试问题及对应答案,帮助你更好的了解和学习Python。
1.Python是什么?为什么这么受欢迎?
Python是一种解释性的高级通用编程语言。
Python的设计理念是通过使用必要的空格和空行来增强代码的可读性。
它因其简单易用的语法而广受欢迎。
2.Python为什么慢,怎么改进?
Python代码执行缓慢的原因是它是一种解释性语言。它的代码在运行时被解释,而不是编译成本地语言。
为了提高Python代码的速度,我们可以使用CPython、Numba,也可以对代码做一些修改。
1.减少内存占用。
2.使用内置函数和库。
3.将计算移出循环。
4.保持代码基数小。
5.避免不必要的循环
3.Python有什么特点?
1.易于编码
2.自由和开源语言
3.高级语言
4.易于调试
5.OOPS支持
6.大量的标准库和第三方模块
7.可扩展性(我们可以用C或C编写Python代码)
8.用户友好的数据结构
4.Python有哪些应用?
1.Web开发
2.桌面GUI开发
3.人工智能和机器学习
4.软件开发
5.业务应用开发
6.基于控制台的应用程序
7.软件测试
8.网络自动化
9.基于音频或视频的应用
10.图像处理应用
5.Python的局限性?
1.速度
2.移动开发
3.内存消耗(与其他语言相比非常高)
4.两个版本的不兼容性(2,3)
5.运行错误(需要更多的测试,错误只在运行时显示)
6.简单
6.Python代码是如何执行的?
首先,解释器读取Python代码并检查是否有语法或格式错误。
如果发现错误,将暂停执行。如果没有发现错误,解释器将把Python代码转换成等价的形式或字节码。
然后将字节码发送到Python虚拟机(PVM),在那里Python代码将被执行。如果发现任何错误,将暂停执行,否则结果将显示在输出窗口中。
7.Python中如何管理内存?
Python内存由Python的私有headspace管理。
的所有Python对象和数据结构都位于私有堆中。私有堆的分配是Python内存管理器的责任。
Python还有一个内置的垃圾收集器,它可以回收未使用的内存并释放它以供headspace使用。
8.解释一下Python内置的数据结构?
Python中有四种主要类型的数据结构。
列表:列表是不同种类数据项的集合,范围从整数到字符串,甚至是另一个列表。该列表是可变的。完成了其他语言的大部分集合数据结构的工作。在列表[]的方括号中定义。
例如:a=[1,2,3,4]
集合:集合是唯一元素的无序集合。可以对集合应用并集、交集和差集等运算。集合是不可变的。用于表示集合。
例如:a={1,2,3,4}
元组:Python元组的工作方式与Python列表完全相同,只是它们是不可变的。用于定义元组。
例如:a=(1,2,3,4)
字典:字典是键值对的集合。它类似于其他语言中的哈希映射。在字典中,键是唯一且不可变的对象。
例如:a={number: [1,2,3,4]}
9.解释//、%、* *运算符?
//(Floor Division)-这是一个除法运算符,返回除法的整数部分。
例如:5 //2=2
%(模数)-返回除法的余数。
例如:5% 2=1
* *(幂)-它对运算符执行指数计算。A ** b代表a的b次方。
例如:5 ** 2=25,5 ** 3=125
10.Python中单引号和双引号有什么区别?
在Python中使用单引号()或双引号("")没有区别。两者都可以用来表示一个字符串。
这两个通用表达式除了简化程序员的开发,避免错误之外,还有一个好处就是减少了转义符的使用,让程序看起来更加简洁明了。
11.Python中的append、insert、extend有什么区别?
Append:在列表末尾添加一个新元素。
插入:在列表中的特定位置添加元素。
扩展:通过添加新列表来扩展列表。
数字=[ 1,2,3,4,5]
数字.追加(6)
打印(数字)
[ 1, 2, 3, 4, 5, 6]
##插入(位置,值)
数字. insert( 2,7)
打印(数字)
[ 1, 2, 7, 4, 5, 6]
数字扩展([ 7,8,9])
打印(数字)
[ 1, 2, 7, 4, 5, 6, 7, 8, 9]
numbers.append([ 4,5])
【1,2,7,4,5,6,7,8,9,【4,5]]12,突破,继续,传球?
Break:当条件满足时,会导致程序退出循环。
Continue:将返回到循环的开始,这将使程序跳过当前循环迭代中所有剩余的语句。
Pass:使程序通过所有剩余的语句而不执行。
13.Python中remove,del,pop的区分?
Remove:将删除列表中第一个匹配的值,该值作为参数。
Del:用索引删除元素,不返回值。
Pop:列表中的顶部元素将被删除,列表中的顶部元素将被返回。
数字=[ 1,2,3,4,5]
数字.删除(5)
[ 1, 2, 3, 4]
数字[ 0]
[ 2, 3, 4]
数字. pop
414.switch语句是什么。如何用Python创建switch语句?
Switch语句是实现多分支选择功能,根据列表值测试变量。
switch语句中的每个值称为一个案例。
在Python中,没有内置的switch函数,但是我们可以创建一个自定义的switch语句。
切换器={
1:“一月”,
2:“二月”,
3:《进行曲》,
4:《四月》,
5:“五月”,
6:“六月”,
7:《七月》,
8:《八月》,
9:《九月》,
10:《十月》,
11:《十一月》,
12:《十二月》
}
month=int(输入)
print(switcher.get(month))
三
March15.举个Python中range函数的例子?
range:range函数返回从起点到终点的一系列序列。
范围(开始、结束、步进),第三个参数用于定义范围内的步进数。
#编号
范围内的fori):
打印(一)
0, 1, 2, 3, 4
#(开始,结束)
fori inrange( 1,5):
打印(一)
1, 2, 3, 4
#(开始、结束、步进)
fori在范围(0,5,2)内:
打印(一)
0,2,416,==和is有什么区别?
==比较两个对象或值的相等性。
Is运算符用于检查两个对象是否属于同一个内存对象。
lst1=[ 1,2,3]
lst2=[ 1,2,3]
lst1==lst2
真实的
lst1 islst2
false17号。如何改变列表的数据类型?
要更改列表的数据类型,可以使用tuple或set。
lst=[ 1,2,3,4,2]
#更改为集合
set(lst) ## {1,2,3,4}
#更改为元组
元组(lst) ## (1,2,3,4,2)18.Python中注释代码的方法有哪些?
在Python中,我们可以用以下两种方式进行注释。
1.三个引号“,用于多行注释。
2.单井编号,用于单行注释。
19、=和is not运算符的区别?
!=如果两个变量或对象的值不相等,则返回true。
用于检查两个对象是否属于同一个内存对象。
lst1=[ 1,2,3,4]
lst2=[ 1,2,3,4]
lst1!=lst2
错误的
lst1不是lst2
True20.Python有主函数吗?
是的,确实如此。只要我们运行Python脚本,它就会自动执行。
21.什么是lambda函数?
Lambda函数是一个没有名字的单行函数。它可以有n个参数,但只有一个表达式。也称为匿名函数。
a=lambdax,y:x y
打印(a( 5,6))
1 22、迭代器和迭代器的区别?
Iterable: Iterative是可以迭代的对象。在迭代的情况下,整个数据一次存储在内存中。
迭代器:迭代器是用来迭代对象的对象。只有在被调用时,它才会被初始化或存储在内存中。迭代器使用next从对象中获取元素。
# List是可迭代的
lst=[ 1,2,3,4,5]
fori inlst:
打印(一)
#迭代器
lst1=iter(lst)
下一个(lst1)
一个
下一个(lst1)
2
fori inlst1:
打印(一)
3, 4, 523.Python中的Map函数是什么?
在对iterable对象的每一项应用特定函数后,map函数返回一个map对象。
24.用Python解释一下滤镜?
Filter函数,根据特定条件从iterable对象中过滤值。
#可迭代
lst=[ 1,2,3,4,5,6,7,8,9,10]
defeven(数字):
ifnum% 2==0:
returnnum
#过滤所有偶数
列表(过滤器(偶数,lst))
———————————————
[2, 4, 6, 8, 10]25.解释一下Python中reduce函数的用法?
reduce函数接受一个函数和一个序列,计算后返回一个数值。
fromfunctools importreduce
a=lambdax,y:x y
打印(reduce(a,[ 1,2,3,4])
1026.什么是酸洗和拆洗?
Pickling是将Python对象(甚至Python代码)转换成字符串的过程。
拆包是将字符串转换为原始对象的反向过程。
27.解释*args和**kwargs?
*args,当我们不确定传递给函数的参数数量时使用。
定义添加(*数字):
总和=0
forval innum:
总和=价值总和
打印(总和)
加法(4,5)
加法(7,4,6)
添加(10,34,23)
———————
九
17
57**kwargs,当我们想要将字典作为参数传递给函数时使用。
28.解释re模块的split,sub和subn方法?
Split:只要模式匹配,这个方法就会拆分字符串。
Sub:这个方法用于用其他字符串或序列替换一个字符串中的一些模式。
Subn:它与sub非常相似,只是它返回一个元组,其中包含总替换计数和作为输出的新字符串。
进口
string="篮子里有两个球"
重新拆分(" \W ",字符串)
—————————————
[有,有,两个,球,在,篮子, 101]
re("[^a-za-z]"," ",字符串)
—————————————-
篮子里有两个球
re.subn( "[^A-Za-z]"," ",字符串)
—————————————
(‘篮子里有两个球’,10) 29。Python中的生成器是什么?
生成器的定义类似于普通函数的定义。生成器使用yield关键字生成值。
如果一个函数包含yield关键字,那么该函数将自动成为一个生成器。
#一个程序,演示如何使用generator对象和next A generator函数
defFun:
产量1
产量2
产量3
# x是一个生成器对象
x=有趣
打印(下一个(x))
—————————
一个
打印(下一个(x))
—————————
230.如何在Python中使用index来反转字符串?
string=hello
字符串[: -1]
奥勒 31岁。类和对象有什么区别?
类被视为对象的蓝图。类中的第一个字符串称为文档字符串,它包含对该类的简短描述。
在Python中,可以使用class关键字创建一个类。一个类包含变量和成员的组合,称为类成员。
对象是真实的实体。为了在Python中为类创建一个对象,我们可以使用obj=CLASS_NAME
示例:obj=num
使用该类的对象,我们可以访问该类的所有成员并对它们进行操作。
classPerson:
"""这是一个人类"""
#变量
年龄=10岁
defgreets(self):
打印(“你好”)
#对象
obj=人
打印
—————————————-
Hello32.你对Python课上的self了解多少?
表示self类的实例。
通过使用self关键字,我们可以访问Python中类的属性和方法。
请注意,self必须用在该类的函数中,因为在该类中没有用于声明变量的显式语法。
33,Python中的_init_有什么用?
“__init__”是Python类中的保留方法。
它被称为构造函数,每当执行代码时都会自动调用它。它主要用于初始化类的所有变量。
34.解释一下Python中的继承?
继承允许一个类获得另一个类的所有成员和属性。继承代码的可重用性使得创建和维护应用程序变得更加容易。
继承的类称为超类,而继承的类称为派生类/子类。
35.Python中的OOPS是什么?
面向对象编程,抽象,封装,继承和多态。
36.什么是抽象?
抽象是向外界展示一个对象的本质或必要特征,并隐藏所有其他无关信息的过程。
37.什么是封装?
封装意味着将数据和成员函数一起打包到一个单元中。
它还实现了数据隐藏的概念。
38.什么是多态性?
多态性意味着“多种形式”。
子类可以定义自己独特的行为,并且仍然共享其父/基类的相同功能或行为。
39.Python中的猴子补丁是什么?
Monkey patching是指在运行时动态修改类或模块。
来自其他产品。SomeModule导入SomeClass
defspeak(自我):
回“你好!”
speak40.Python支持多重继承吗?
Python可以支持多重继承。多重继承意味着一个类可以从多个父类派生。
41.Python中使用的zip函数是什么?
Zip函数接受iterable对象,将它们聚集成一个元组,然后返回结果。
zip函数的语法是zip(*iterables)
数字=[ 1,2,3]
string=[一,二,三]
result=zip(数字,字符串)
打印(集合(结果))
————————————-
{(3,三),(2,二),(1,一)} 42。解释一下Python中的map函数?
映射函数将给定函数应用于可迭代对象(列表、元组等)。)然后返回结果(map对象)。
我们也可以在map函数中同时传递多个迭代对象。
数字=( 1,2,3,4)
result=map(x:x x,numbers)
Print(list(result))43.Python中的decorator是什么?
Decorator是Python中一个有趣的函数。
它用于向现有代码添加功能。这也称为元编程,因为程序的一部分在编译时会试图修改程序的另一部分。
默认添加(函数):
定义者(a,b):
打印(“数字是”,a,“和”,b)
returnfunc(a,b)
returninner
@添加
默认添加(a,b):
打印(a b)
加法(5,6)
———————————
数字是5和6
总和:1144.写一个程序,找出文本文件中最长的单词。
deflongest_word(文件名):
withopen(filename, r )as file:
words=infile.read.split
max_len=len(max(words,key=len))
return[word for word in words iflen(word)==max _ len]
打印(longest_word( test.txt ))
—————————————————-
[《理解篇》] 45。写一个程序检查这个序列是否是回文。
a=输入(“输入序列”)
ispalindrome=a==a[: -1]
ispalindrome
True46.写一个程序打印斐波那契数列的前十项。
fibo=[ 0,1]
[fibo . append(fibo[-2]fibo[-1])for I in range(8)]
菲博
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]47.写一个程序来计算文件中单词的频率。
fromcollections导入计数器
defword_count(fname):
withopen(fname) asf:
returnCounter(f.read.split)
print(word _ count(" test . txt "))48。写一个程序输出给定序列中的所有素数。
lower=int(input("输入下限:"))
upper=int(input("输入上限范围:"))
list(filter( lambdax:all(x % y!=0fory inrange( 2,x)),range(下限,上限)))
————————————————-
输入下限:10
输入上限:50
[11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47] 49.写一个程序,检查这个数字是否是阿姆斯特朗。
依次分开每个数字,累加它的立方(位数)。
最后,如果发现总和等于原数,则称为阿姆斯特朗数。
num=int(input("输入数字:\n "))
order=len(str(num))
总和=0
临时=数量
whiletemp 0:
digit=temp % 10
总和=数字**顺序
温度//=10
ifnum==sum:
print(num,“是阿姆斯特朗编号”)
否则:
打印(数字,“不是一个阿姆斯特朗号码”) 50。使用一行Python代码从给定的列表中取出所有的偶数和奇数。
a=[ 1,2,3,4,5,6,7,8,9,10]
奇数,偶数=[el forel ina ifel % 2==1],[el forel ina ifel % 2==0]
打印(奇数、偶数)
([ 1, 3, 5, 7, 9], [ 2, 4, 6, 8, 10])
转载请联系作者获得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。