1、什么是闭包
在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。
python
# 内部函数使用了外部函数的变量,就相当于闭包
def func1():
a=1
def inner():
return a
return inner
print(func1()())
2、索引再什么情况下遵循最左前缀的规则?
在多字段进行索引的时候,会遵循以上原则
3、如何实现Redis集群
1、 Twitter开发的twemproxy
2、 豌豆荚开发的codis
3、 Redis官方的Redis-cluster
4、请列举布尔值位False的常见值
0、''、[]、{}、tuple()、None、set()
5、什么是rpc
远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务
1.RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。
2.首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。
2.在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,
3.最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
6、a=range(10),则a[::-3]的值是?
[9,6,3,0] 或者 range(9,-1,-3)
7、写出邮箱的正则表达式
python
import re
pp=re.compile('[a-zA-Z0-9_-]+@[0-9A-Za-z]+(\.[0-9a-zA-Z]+)+')
if pp.match('1403179190@qq.com'):
print('ok')
8、在Python中如何使用多进制数字?
我们在Python中,除十进制外还可以使用二进制、八进制和十六进制。
1、 二进制数字由0和1组成,我们使用 0b 或 0B 前缀表示二进制数。
>>> int(0b1010)
10
2、 使用bin()函数将一个数字转换为它的二进制形式。
>>> bin(0xf)
‘0b1111’
3、 八进制数由数字 0-7 组成,用前缀 0o 或 0O 表示 8 进制数。
>>> oct(8)
‘0o10’
4、 十六进数由数字 0-15 组成,用前缀 0x 或者 0X 表示 16 进制数。
>>> hex(16)
‘0x10’
>>> hex(15)
‘0xf’
9、编写程序,输出给定序列中的所有质数
lower = int(input("Enter the lower range:"))
upper = int(input("Enter the upper range:"))
list(filter(lambda x:all(x % y != 0 for y in range(2, x)), range(lower, upper)))
-------------------------------------------------
Enter the lower range:10
Enter the upper range:50
[11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
10、如何实现字符串的反转?如:name=felix,反转成name=xilef
python
name = "felix"
# 方法一:
name=name[::-1]
# 方法二:
name2=list(name)
name2.reverse()
name=''.join(name2)
# 方法三:
from functools import reduce
name=reduce(lambda x, y: y+x, name)