面试题整理二

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。。 有一种默契叫做我不理你,你就不理我

原文地址:https://www.cnblogs.com/weidaijie/p/10533800.html