面试题整理二
1、单引号,双引号,三引号的区别
单引号和双引号是等效的,如果要换行,需要符号(\),三引号则可以直接换行,并且可
以包含注释
如果要表示 Let’s go 这个字符串
单引号:s4 = ‘Let\’s go’
双引号:s5 = “Let’s go”
s6 = ‘I realy like“python”!’
这就是单引号和双引号都可以表示字符串的原因了
2、如何在一个 function 里面设置一个全局的变量?
解决方法是在 function 的开始插入一个 global 声明:
def f():
global
3、有没有一个工具可以帮助查找 python 的 bug 和进行静态的代码分析?
PyChecker 是一个 python 代码的静态分析工具,它可以帮助查找 python 代码的 bug, 会
对代码的复杂度和格式提出警告
Pylint 是另外一个工具可以进行 codingstandard 检查
4、Python 里面如何生成随机数?
random 模块
随机整数:random.randint(a,b):返回随机整数 x,a<=x<=b
random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整
数,不包括结束值。
随机实数:random.random( ):返回 0 到 1 之间的浮点数
random.uniform(a,b):返回指定范围内的浮点数
5、Python 里面 match()和 search()的区别?
re 模块中 match(pattern,string[,flags]),检查 string 的开头是否与 pattern 匹配。
re 模块中 re.search(pattern,string[,flags]),在 string 搜索 pattern 的第一个匹配值。
>>>print(re.match(‘super’, ‘superstition’).span())
(0, 5)
>>>print(re.match(‘super’, ‘insuperable’))
None
>>>print(re.search(‘super’, ‘superstition’).span())
(0, 5)
>>>print(re.search(‘super’, ‘insuperable’).span())
(2, 7)
6、如何用 Python 来进行查询和替换一个文本字符串?
答:可以使用 re 模块中的 sub()函数或者 subn()函数来进行查询和替换,
格式:sub(replacement, string[,count=0])(replacement 是被替换成的文本,string 是
需要被替换的文本,count 是一个可选参数,指最大被替换的数量)
>>> import re
>>>p=re.compile(‘blue|white|red’)
>>>print(p.sub(‘colour’,'blue socks and red shoes’))
colour socks and colourshoes
>>>print(p.sub(‘colour’,'blue socks and red shoes’,count=1))
colour socks and redshoes
数据库引擎的区别
Mysql的数据库引擎常用的有两种:InnoDB、MyISAM
InnoDB
- 支持事务
- 支持行锁和表锁
MyISAM
- 不支持事务
- 支持全文索引
- 查询速度比较快
- 只支持表锁
什么是表锁?什么是行锁?
当用户对表进行操作的时候,对表(或者行)进行上锁,不让其他用户进行操作,(除了查询之外)知道该用户释放锁,
下一个用户才能够进行操作
为什么要有锁?
为了数据的安全
想象一个场景,如果某东发放100张满1000减900的优惠券,出现了大量的并发操作,
如果没有锁的话那么可能在同一时刻两个用户每人抢到一张,但是数据库没有及时更新
只减了一次.所以加锁是很有必要的.
I can feel you forgetting me。。 有一种默契叫做我不理你,你就不理我