python基础面试测试100题
- Q1.什么是Python?
- Q2.Python的主要功能是什么?
- Q3.Python中支持的数据类型有哪些?
- Q4.列表和元组有什么区别?
- Q5.什么是Python模块?
- Q6.python解释器种类以及特点?
- Q7.什么是Python切片?
- Q8.Python中的%S是什么?
- Q9.Python编程中的函数是什么?
- Q10.Python中有多少基本类型的函数可用?
- Q11.我们如何用Python编写函数?
- Q12.深拷贝和浅拷贝有什么区别?
- Q13.Python中的函数调用或可调用对象是什么?
- Q14.Python中Pass和Continue有什么区别?
- Q15. PYTHONPATH环境变量的目的是什么?
- Q16.PYTHONSTARTUP,PYTHONCASEOK,PYTHONHOME,PYTHONSTARTUP环境变量的目的是什么?
- Q17.如何在Python中实现多线程?
- Q18.如何在python中使用三元运算符?
- Q19.什么是Tkinter ?
- Q20.Python中的继承
- Q21.请谈谈.pyc文件和.py文件的不同之处
- Q22.什么是酸洗和去除?
- Q23.在Python中命名与文件相关的模块?
- Q24.解释使用with声明?
- Q25.解释Python支持的所有文件处理模式?
- Q26. Python支持多少种序列?
- Q27.如何在Python中执行模式匹配?
- Q28.Python如何处理内存管理?
- Q29.如何以相反的顺序显示文本文件的内容?
- Q30.什么是负索引
- Q31.解释Python中“re”模块的split(),sub(),subn()方法。
- Q32.解释Python Flask中的数据库连接
- Q33. range和xrange有什么区别?
- Q34.Python中的“按值调用”是什么?
- Q35.什么是Python中的“按引用调用”?
- Q36.Lambda和Def之间的主要区别是什么?
- Q37.ascii、unicode、utf-8、gbk 区别?
- Q38.每当Python退出时,为什么不是所有的内存都被解除分配?
- Q39.解释Python的参数传递机制
- Q40.什么是猴子补丁?
- Q41.大数据的文件读取
- Q42.find和grep
- Q43.线上服务可能因为种种原因导致挂掉怎么办?
- Q44.如何提高python的运行效率
- Q45.常用Linux命令
- Q46.Python中的yield用法
- Q47.描述数组、链表、队列、堆栈的区别?
- Q48.如何使用我已经知道的URL地址本地保存图像?
- Q49.如何获取任何网址或网页的Google缓存时限?
- Q50.您需要从IMDb前250电影页面中删除数据,只有字段电影名称,年份和评级
- Q51.请解释使用*args和*kwargs的含义
- Q52.如何在Python中删除文件?
- Q53.解释如何从C访问用Python编写的模块?
- Q54.在Python中使用//运算符?
- Q55.怎么移除一个字符串中的前导空格?
- Q56.如何用Python输出一个Fibonacci数列?
- Q57.在Python中怎样将字符串转换为整型变量?
- Q58.在Python中如何生成一个随机数?
- Q59.怎样将字符串中第一个字母大写?
- Q60.如何检查字符串中所有的字符都为字母数字?
- Q61.什么是Python中的连接(concatenation)?
- Q62.什么是递归?
- Q63.什么是生成器?
- Q64.什么是迭代器?
- Q65.请说说生成器和迭代器之间的区别
- Q66.函数zip()的是干嘛的?
- Q67.如何用Python找出你目前在哪个目录?
- Q68.如何计算一个字符串的长度?
- Q69.如何从列表中删除最后一个对象?
- Q70.解释一些在Python中实现面向功能的编程的方法
- Q71.编写一个Python程序来计算数字列表的总和
- Q72.编写一个Python程序来读取文件中的随机行
- Q73.编写一个Python程序来计算文本文件中的行数
- Q74.请写一个Python逻辑,计算一个文件中的大写字母数量
- Q75.在Python中为数值数据集编写排序算法
- Q76.请解释或描述一下Django的架构
- Q77.Django,Pyramid和Flask之间的差异
- Q78.讨论Django架构
- Q79.解释如何在Django中设置数据库
- Q80.举例说明如何在Django中编写VIEW?
- Q81.提到Django模板的组成部分。
- Q82.在Django框架中解释会话的使用?
- Q83.列出Django中的继承样式
- Q84.什么是Python中的map函数?
- Q85.如何在NumPy数组中获得N个最大值的索引?
- Q86.如何用Python/ NumPy计算百分位数?
- Q87.NumPy阵列在(嵌套)Python列表中提供了哪些优势?
- Q88.解释装饰器的用法
- Q89.NumPy和SciPy有什么区别?
- Q90.如何使用NumPy / SciPy制作3D绘图/可视化?
- Q91.scrapy和scrapy-redis有什么区别?为什么选择redis数据库?
- Q92.你用过的爬虫框架或者模块有哪些?
- Q93.你常用的mysql引擎有哪些?各引擎间有什么区别?
- Q94.描述下scrapy框架运行的机制?
- Q95.什么是关联查询,有哪些?
- Q96.写爬虫是用多进程好?还是多线程好? 为什么?
- Q97.数据库的优化?
- Q98.分布式爬虫主要解决什么问题?
- Q99.爬虫过程中验证码怎么处理?
- Q100.常见的反爬虫和应对方法?
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'
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()执行浅拷贝,使用如下所示:
b=copy.copy(a)
Q13.Python中的函数调用或可调用对象是什么?
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中的继承
继承允许一个类获得另一个类的所有成员(比如属性和方法)。继承提供代码可重用性,使创建和维护应用程序更容易。
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”,只读模式&#x