【python】python基础测试100题
python基础⾯试测试100题
Q1.什么是Python?
Python是⼀种⾯向对象的,交互式的,解释型的计算机程序设计语⾔。Python的设计具有⾼可读性,它使⽤英语关键词⽽⾮标点符号,语法结构也⽐其他语⾔简单。
Q2.Python的主要功能是什么?
1)python是⼀种解释型语⾔,因此在使⽤python时不需要进⾏编译
2)声明变量和类似变量时,不需要重复声明变量的类型;
3)Python⾮常适合⾯向对象的编程,因为它允许类的定义以及组合和继承;
4)函数是第⼀类对象,这意味着它们可以分配给变量,从其他函数返回并传递给函数,类也是第⼀类对象;
5)⽤于许多领域,包括Web应⽤程序,⾃动化,科学建模,⼤数据应⽤程序等等。
Q3.Python中⽀持的数据类型有哪些?
Python⽀持5种数据类型:
1)Numbers(数字)——⽤于保存数值;
a=7.0
2)Strings(字符串)——字符串是⼀个字符序列,我们⽤单引号或双引号来声明字符串;
title=“Data123”
3)Lists(列表)——列表就是⼀些值的有序集合,我们⽤⽅括号声明列表;
colors=['red','green','blue']
type(colors)
<class 'list'>
4)tuples(元组)——元组和列表⼀样,也是⼀些值的有序集合,区别是元组是不可变的,意味着我们⽆法改变元组内的值。
(1,2,3,abc)
5)Dictionary(字典)——字典(dictionary)是除列表以外Python之中最灵活的内置数据结构类型。
列表是有序的对象结合,字典是⽆序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,⽽不是通过偏移存取。
字典⽤"{ }"标识。字典由索引(key)和它对应的值value组成。
dict = {}
dict['one'] = 'This is one'
dict[2] = 'This is two'
tinydict = {'name':'john','code':5762,'dept':'sales'}
print(dict['one']) #输出键为'one'的值
print(dict[2]) #输出键为2的值
print(tinydict) #输出完整的字典
print(tinydict.keys()) #输出所有键
print(tinydict.values()) #输出所有值
Q4.列表和元组有什么区别?
Q5.什么是Python模块?
模块是⼀个Python脚本,通常包含import语句,函数,类和变量定义,以及Python可运⾏代码,⽂件的扩展名为“.py”。
Q6.python解释器种类以及特点?
CPython:这个解释器是⽤C语⾔开发的,所以叫 CPython,在命名⾏下运⾏python,就是启动CPython解释器,CPython是使⽤最⼴的Python解释器;
IPython:IPython是基于CPython之上的⼀个交互式解释器,也就是说,IPython只是在交互⽅式上有所增强;
PyPy:PyPy是另⼀个Python解释器,它的⽬标是执⾏速度,PyPy采⽤JIT技术,对Python代进⾏动态编译,所以可以显著提⾼Python 代码的执⾏速度;
Jython:Jython是运⾏在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执⾏。
IronPython:IronPython和Jython类似,只不过IronPython是运⾏在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
Q7.什么是Python切⽚?
Python中符合序列的有序序列都⽀持切⽚(slice),如:列表,字符,元祖
Python中切⽚的格式:[start : end : step]
Start:起始索引,从0开始,-1表⽰结束;End:结束索引;Step:步长
end-start=正数时,从左向右取值,=负数时反向取值
注意:切⽚结果不包含结束索引,即不包含最后⼀位,-1代表最后⼀个位置索引
str1 = 'abcdefghijklmnopqrstuvwxyz'
groupby多个条件str1[2:6]
'cdef'
Q8.Python中的%S是什么?
Python⽀持将值格式化为字符串。虽然这可以包括⾮常复杂的表达式,但最基本的⽤法是将值插⼊到%s 占位符的字符串中 。
name = raw_input("who are you?")
print "hello %s" % (name,)
Q9.Python编程中的函数是什么?
函数是表⽰代码块并且是可重⽤实体的对象。
它为程序带来了模块化,并提供了更⾼程度的代码可重⽤性。
Python为我们提供了许多内置函数,例如print()等,并提供了创建⽤户定义函数的能⼒。
Q10.Python中有多少基本类型的函数可⽤?
Python为我们提供了两种基本类型的函数:内置和⽤户定义。
内置函数是Python语⾔的⼀部分,⽐如print(),dir(),len()和abs()等。
Q11.我们如何⽤Python编写函数?
我们可以通过以下⽅式创建Python函数。
1)⽤def定义函数并链接功能名称;
2)传递参数并使⽤括号将它们括起来,使⽤冒号来表⽰结尾;
3)添加所需的Python语句以供执⾏。
Q12.深拷贝和浅拷贝有什么区别?
深拷贝就是将⼀个对象拷贝到另⼀个对象中,这意味着如果你对⼀个对象的拷贝做出改变时,不会影响原对象。
在Python中,我们使⽤函数deepcopy()执⾏深拷贝,导⼊模块copy,如下所⽰:
import copy
b=copy.deepcopy(a)
⽽浅拷贝则是将⼀个对象的引⽤拷贝到另⼀个对象上,所以如果我们在拷贝中改动,会影响到原对象。我们使⽤函数function()执⾏浅拷贝,使⽤如下所⽰:
py(a)
Q13.Python中的函数调⽤或可调⽤对象是什么?
oss镜头Python中的函数被视为可调⽤对象。它可以允许⼀些参数,并以元组的形式返回⼀个值或多个值。除了函数之外,Python还有其他构造,例如类或适合同⼀类别的类实例。
Q14.Python中Pass和Continue有什么区别?
continue语句使循环从下⼀次迭代中恢复。pass语句指⽰什么都不做,代码的其余部分像往常⼀样执⾏。
Q15. PYTHONPATH环境变量的⽬的是什么?
PYTHONPATH - 它的作⽤类似于PATH。此变量告诉Python解释器在何处到导⼊程序的模块⽂件。它应该包括Python源库⽬录和包含Python源代码的⽬录。PYTHONPATH有时由Python安装程序预设。
Q16.PYTHONSTARTUP,PYTHONCASEOK,PYTHONHOME,PYTHONSTARTUP环境变量的⽬的是什么?
PYTHONSTARTUP - 它包含⼀个包含Python源代码的初始化⽂件的路径。每次启动解释器时都会执⾏它。它在Unix中命名
为.pythonrc.py,它包含加载实⽤程序或修改PYTHONPATH的命令。
PYTHONCASEOK - 在Windows中⽤于指⽰Python在import语句中查第⼀个不区分⼤⼩写的匹配项。将此变量设置为任何值以激活它。
PYTHONHOME - 它是另⼀种模块搜索路径。它通常嵌⼊在PYTHONSTARTUP或PYTHONPATH⽬录中,以便于切换模块库。
Q17.如何在Python中实现多线程?
python主要是通过thread和threading这两个模块来实现多线程⽀持。
python的thread模块是⽐较底层的模块,python的threading模块是对thread做了⼀些封装,可以更加⽅便的被使⽤。但是
python(cpython)由于GIL的存在⽆法使⽤threading充分利⽤CPU资源,如果想充分发挥多核CPU的计算能⼒需要使⽤multiprocessing模块(Windows下使⽤会有诸多问题)。
python3.x中已经摒弃了Python2.x中采⽤函数式thread模块中的start_new_thread()函数来产⽣新线程⽅式。python3.x中通过threading模块创建新的线程有两种⽅法:
1)通过threading.Thread(Target=executable Method)-即传递给Thread对象⼀个可执⾏⽅法(或对象)
2)继承threading.Thread定义⼦类并重写run()⽅法。第⼆种⽅法中,唯⼀必须重写的⽅法是run()。
Q18.如何在python中使⽤三元运算符?
Ternary运算符是⽤于显⽰条件语句的运算符。这包含true或false值,并且必须为其评估语句。
三元运算符将被给出为:
[on_true] if [expression] else [on_false] x,y = 25,50big =x if x <y else y
表达式的计算⽅式与x <y else y⼀样,在这种情况下,如果x <y为真,则返回值为big = x,如果不正确则返回big = y作为结果。
Q19.什么是Tkinter ?
TKinter是⼀款很知名的Python库,⽤它我们可以制作图形⽤户界⾯。其⽀持不同的GUI⼯具和窗⼝构件,⽐如按钮、标签、⽂本框等等。这些⼯具和构件均有不同的属性,⽐如维度、颜⾊、字体等。
Q20.Python中的继承
mysql创建用户的命令继承允许⼀个类获得另⼀个类的所有成员(⽐如属性和⽅法)。继承提供代码可重⽤性,使创建和维护应⽤程序更容易。
python基础代码练习
Python⽀持的不同类型的继承:
1)单⼀继承 - 派⽣类获取单个超类的成员;
2)多级继承 - 从基类base1继承的派⽣类d1,d2继承⾃base2;
3)分层继承 - 从⼀个基类可以继承任意数量的⼦类;
4)多重继承 - 派⽣类从多个基类继承。
Q21.请谈谈.pyc⽂件和.py⽂件的不同之处
虽然这两种⽂件均保存字节代码,但.pyc⽂件是Python⽂件的编译版本,它有平台⽆关的字节代码,因此我们可以在任何⽀持.pyc格式⽂件的平台上执⾏它。
Q22.什么是酸洗和去除?
Pickle模块接受任何Python对象并将其转换为字符串表⽰形式,并使⽤dump函数将其转储到⽂件中,此过程称为pickling。从存储的字符串表⽰中检索原始Python对象的过程称为unpickling。
Q23.在Python中命名与⽂件相关的模块?
Python为库/模块提供了⼀些函数,你可以在⽂件系统上操作⽂本⽂件和⼆进制⽂件。使⽤它们完成创建⽂件,更新内容,复制和删除⽂件的操作。这些库是:os,os.path和shutil。
Q24.解释使⽤with声明?
在python中,通常“with”语句⽤于打开⽂件,处理⽂件中存在的数据,还可以在不调⽤close()⽅法的情况下关闭⽂件。
Q25.解释Python⽀持的所有⽂件处理模式?
Python中可以使⽤三种⽅法打开⽂件。他们是:
1)通过分别指定标志“r”,“w”,“rw”,“a”,只读模式,只写模式,读写模式和附加模式;
霹雳里面有意境的名字2)通过指定选项“t”,可以在上述任何⼀种模式中打开⽂本⽂件;
3)“r”,“w”,“rw”和“a”,以便前⾯的模式变为“rt”,“wt”,“rwt”和“at”。⼆进制⽂件可以在任何⼀个中打开上述模式通过指定选项“b”以及“r”,“w”,“rw”和“a”使得前⾯的模式为“rb”,“wb”,“rwb”,“ab”。
Q26. Python⽀持多少种序列?
Python⽀持7种序列类型。它们是str,list,tuple,unicode,byte array,xrange和buffer。其中xrange在python 3.5.X中已弃⽤。
Q27.如何在Python中执⾏模式匹配?
正则表达式(RE)使我们能够指定匹配给定字符串的特定“部分”的表达式。例如,我们可以定义⼀个正则表达式来匹配单个字符或数字,电话号码或电⼦邮件地址等.Python的“re”模块提供正则表达式模式,并从Python 2.5的更⾼版本中引⼊。“re”模块提供搜索⽂本字符串的⽅法,或者替换⽂本字符串以及基于定义的模式拆分⽂本字符串的⽅法。
Q28.Python如何处理内存管理?
Python内存由Python私有堆空间管理。所有Python对象和数据结构都位于私有堆中。程序员⽆权访问此私有堆,解释器负责处理此私有堆。Python对象的Python堆空间分配由Python内存管理器完成。核⼼API提供了⼀些程序员编写代码的⼯具。Python还有⼀个内置的垃圾收集器,它可以回收所有未使⽤的内存并释放内存并使其可⽤于堆空间。
Q29.如何以相反的顺序显⽰⽂本⽂件的内容?
1)将给定⽂件转换为列表
2)使⽤reverse()反转列表例如:
for reverse in reverse(list(open(“file-name”,“r”))):
print()
Q30.什么是负索引
Python序列可以是正数和负数的索引。对于正索引,0是第⼀个索引,1是第⼆个索引,依此类推。对于负索引,( - 1)是最后⼀个索引,( - 2)是倒数第⼆个索引,依此类推。
学编程学什么语言更好Q31.解释Python中“re”模块的split(),sub(),subn()⽅法。
为了修改字符串,Python的“re”模块提供了3种⽅法。
1)split() - 使⽤正则表达式模式将给定字符串“拆分”到列表中;
2)sub() - 查正则表达式模式匹配的所有⼦字符串,然后⽤不同的字符串替换它们;
3)subn() - 它类似于sub(),并且还返回新字符串和no。替换。
Q32.解释Python Flask中的数据库连接
Flask⽀持数据库驱动的应⽤程序(RDBS)。Flask允许以三种⽅式请求数据库
1)before_request():在请求之前调⽤它们并且不传递任何参数
2)after_request():在请求后调⽤它们并传递将发送到客户端的响应
3)teardown_request():在引发异常时调⽤它们,并且不保证响应。它们在响应构建后被调⽤。不允许他们修改请求,并忽略它们的值。
Q33. range和xrange有什么区别?
在⼤多数情况下,xrange和range在功能⽅⾯完全相同,它们都提供了⼀种⽣成整数列表的⽅法。唯⼀的区别是range返回⼀个Python列表对象,x range返回⼀个xrange对象。
Q34.Python中的“按值调⽤”是什么?
在call-by-value中,表达式或值是否绑定到函数中的相应变量的参数。Python会将该变量视为函数级范围中的本地变量。对该变量所做的任何更改都将保留在本地,并且不会反映在该函数之外。
Q35.什么是Python中的“按引⽤调⽤”?
我们可以互换地使⽤“引⽤调⽤”和“引⽤传递”。当我们通过引⽤传递参数时,它可以作为函数的隐式引⽤,⽽不是简单的副本。在这种情况下,对参数的任何修改也将对调⽤者可见。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论