【猿小白】常见Python面试问题汇总~~~持续更新~~~直到拿到心仪的offer

来源:互联网 发布:science online数据库 编辑:程序博客网 时间:2024/05/18 02:49

眼看秋招已过大半,依旧没有拿到心仪的offer,但还是要坚持住最初的信念,必要的时候还是得喝点心灵鸡汤,不管上一场面试结果如何,还是得重整旗鼓,卯足了劲往前冲,所谓百面成钢,前提也得是总结分析失败的教训。下面的一些问题是一些我在面试的时候遇到的问题,会与不会的我都一并整理了下来,查缺补漏扫扫盲。这一篇主要是关于Python常见的面试问题

Python中常见的面试问题**
1、_ 、_和__xx_的区别
“_”单下划线:
Python中不存在真正的私有方法,为了实现类似于c++中私有方法,可以在类的方法或属性前加一个“_”单下划线,意味着该方法或属性不应该去调用,它并不属于API。
“__”双下划线:
这个双下划线会造成更多的混乱,但他并不是用来标志一个方法或属性是私有的,真正作用是用来避免子类覆盖其内容。
xx“前后各双下划线:
此种写法为Python内建属性方法,最好不要在外部调用。
xx”经常是操作符或本地函数调用的magic methods。
总结:
使用_one_underline来表示该方法或属性是私有的,不属于API;
当创建一个用于python调用或一些特殊情况时,使用two_underline
使用__just_to_underlines,来避免子类的重写!
2、使用过的库

排序不分优先级.1.os   和操作系统有关2.time    与时间有关3.pcap    抓包4.dpkt   解包和组包5.pymssql   进行mssql数据库操作6.cProfile    自己debug脚本性能时用的,可以精确快速计算运行时间7.urllib2    最早接触的库之一,跟HTTP有关8.httplib   与HTTP有关9.smtplib  SMTP的lib10.poplib  POP3的lib11.tarfile  解tar包12.socket  最原始的tcp库13.paramiko  SSH SFTP14.psyco  增强性能,对函数和类,尤其包含多次循环的非常有效15.pywin32  运用windows的API16.selenium  界面自动化17.sqlite3  sqlite3数据库操作18.email  邮件的编码解码19.stackless  微线程,据有关人测试,可以达到普通线程的十倍性能20.wx  wxpython,写界面用的21.py2exe  把py程序弄成exe可执行的22.shutil  很有用,copy,删除23.thread  普通线程

3、Python是多线程的吗
Python不支持多线程,但是可以使用一些方法实现多线程,python提供了两个模块来实现多线程thread 和threading ,thread 有一些缺点,在threading 得到了弥补。
4、对Python的理解
5、元祖、字典和列表的区别

列表
list(列表) 用方括号
列表是Python的一种内置数据类型,list是一种有序的集合,可以随时添加和删除其中的元素。
获取list中的元素用角标获取,角标可以使用正角标,也可以使用负角标,越界时抛出IndexErro
list中的元素的数据类型也可以不一样(就像Java一样),也可以在list内放另外一个list,这样也就形成了一个多维集合

list的方法
len(list) #获取lest长度
append() #末尾追加元素
pop() #弹出末尾元素
例如:

zoo = [‘pig’,’tiger’,’dog’]
zoo
[‘pig’,’tiger’,’dog’]
zoo[0]
‘pig’
zoo[-1]
‘dog’

元祖
tuple(元祖) 用小括号
元祖也是一种有序列表,和list非常类似,不同点是tuple一旦定义了就不可修改,在一定意义上这也提高了代码的安全性,查询方法和list一样,使用的时候能用tuple的就用tuple。
在定义只有一个元素的元祖时加入”逗号”以免产生和数学运算的歧义

可变的tuple
当元祖内部放一个列表的时候,这个元祖中的列表的值就可以变化了,实际上tuple并没有改变,变的是内部list的值>>>
country = (‘bj’,[‘sh’,’gd’])

country[1]
[‘sh’, ‘gd’]
country[1][0] = ‘yn’
country
(‘bj’, [‘yn’, ‘gd’])

字典
字典类似于你通过联系人名称查找地址和联系人详细情况的地址簿,即我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确信息。
  键值对在字典中以这样的方式标记:d={key:value,key2:value2}.注意他们的键/值对用冒号分割,而各个队用逗号分隔,所有这些都包括在花括号中。另外,记住字典中的键/值是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前对他们排序。
Dictionary (字典) : 用{}来定义
Dict={‘name’:’Pei’, ‘age’:’26’}
6、可变对象和不可变对象
python中,万物皆对象。
   python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址。
Python在heap中分配的对象分成两类:可变对象和不可变对象。所谓可变对象是指,对象的内容可变,而不可变对象是指对象的内容不可变。
(1)不可变(immutable):int、字符串(string)、float、(数值型number)、元组(tuple)
(2)可变(mutable):字典型(dictionary)、列表型(list)

阅读全文
0 0