http在django的机制
session的机制
session存储
反扒机制
中间件
多级关系表结构设计
- 任意给定 n 值(0< n< 100, n 为整数),按照正向螺旋的方式输出其方阵。算法时间复杂度为 O(n²),空间复杂度为 O(n²)。
例 1:输入:4;输出:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
例 2:输入:5;输出:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
def generate_spiral_matrix(n):
matrix = [[0] * n for _ in range(n)] # 初始化一个 n x n 的矩阵,全部填充为 0
num = 1 # 要填充的数字
top, bottom, left, right = 0, n - 1, 0, n - 1 # 初始的上、下、左、右边界
while num <= n * n: # 循环直到填充完所有位置
# 从左到右填充上边界
for i in range(left, right + 1):
matrix[top][i] = num
num += 1
top += 1 # 上边界下移
# 从上到下填充右边界
for i in range(top, bottom + 1):
matrix[i][right] = num
num += 1
right -= 1 # 右边界左移
# 从右到左填充下边界
for i in range(right, left - 1, -1):
matrix[bottom][i] = num
num += 1
bottom -= 1 # 下边界上移
# 从下到上填充左边界
for i in range(bottom, top - 1, -1):
matrix[i][left] = num
num += 1
left += 1 # 左边界右移
return matrix
def print_matrix(matrix):
for row in matrix:
# print('\t'.join(map(str, row))) # 将矩阵的每一行转换为字符串并打印
print(row)
n = int(input("输入一个整数 n:"))
if 0 < n < 100:
result_matrix = generate_spiral_matrix(n)
print_matrix(result_matrix)
else:
print("n 的范围应该在 (0, 100) 之间")
-
请实现一个装饰器:给定 n,限制函数每分钟调用不超过 n 次。
import time
import functools
def limit_calls_per_minute(n):
# 使用装饰器工厂函数创建装饰器
def decorator(func):
# 用于记录每个函数的上次调用时间和调用次数的字典
call_records = {}
@functools.wraps(func)
def wrapper(*args, **kwargs):
# 获取当前时间
current_time = time.time()
# 清除过期的记录(一分钟前的记录)
for key in list(call_records.keys()):
if current_time - call_records[key][0] >= 60:del call_records[key]
# 获取函数的唯一标识
func_id = id(func)
# 如果记录不存在,初始化记录
if func_id not in call_records:call_records[func_id] = [current_time, 0]
# 检查调用次数是否超过限制
if call_records[func_id][1] < n:
call_records[func_id][1] += 1
return func(*args, **kwargs)
else:return f"Function '{func.__name__}' has exceeded the call limit per minute."
return wrapper
return decorator
# 使用装饰器限制每分钟调用不超过3次
@limit_calls_per_minute(3)
def my_function():print("Function called")
# 测试函数调用
for _ in range(5):
my_function()
time.sleep(20)
- 请实现一个正则表达式,过滤出 txt 文本邮箱,邮箱可能分布在两行,使用 python、shell实现均可。
例 1:文本:
13487@qq.com 1332237 3272398 134872323@qq.com 1332237 3272398
输出:13487@qq.com 134872323@qq.com
例 2:文本:
13487@qq.com 1332237 32723981348 72323@qq.com 1332237 3272398
输出:13487@qq.com72323@qq.com
linux
- 给定日志记录文件目录:/logs, 请使用单行指令实现查找该目录下所有包含 ERROR 日志
的文件名和行数以及日志记录。
文件样例:
/logs/test.log.20230221
/logs/test.log.20230222
/logs/test.log.20230223
/logs/test.log.20230224
/logs/test.log.20230225
/logs/test.log.20230226
输出:
/logs/test.log.20230223:23 ERRORtest
/logs/test.log.20230226:289 ERRORtest - 给定进程关键字,请使用单行指令找出所有相关进程。
- 请使用单行指令指定进程 id 并强制删除,id 为 123,124, 135
生成器 迭代器 列表字典生成式
python数据类型,可变不可变数据类新,列表字典方法,内置函数。取出字典最大键值对,匿名函数,线程开启,正则表达式match search区别,mysql索引 ,union 和union all ,内 、左、右连接,日志模块级别
一个字符串排序算法
1.你认为我们为什么会聘用你
2.在你看来,我们会为你的职业生涯规划一个怎样的环境?
3.你的长处是什么?
4、什么是你最大的弱点?
5.你如何评价你的前任老板或者兼职前任老板?
6.你的业余时间喜欢做什么?
7.你觉得5年后你会是什么样?
8.你对薪水的期望是多少?
9.对你来说工作中最重要的是什么?
10.为什么愿意加入我们这个团队工作?
11.如果我们聘用你,你会待多久?
12.如果让你选择,你对什么职业最感兴趣?
13.你在学校里成功的一件事情是什么?口述出来。
不论大事小事都可以;必须是你克服了困难,或者挑战了自我,然后自己认为成功的一件事情.
1、用过什么框架
2、什么情况下用Django,什么情况下用Flask
3、设计模式
4、装饰器
5、多线程多进程
6、加密方法
7、消息队列
8、卡夫卡
9、Redis可以做什么
10、python第三方库用过哪些
11、数据处理的第三方库:正则
12、写没写过技术文档
13、数据库主要用那些
14、MySQL建表要求
15、MySQL慢查询优化
16、SQL执行计划
17、个人技术提升,从哪方面提升
18、读过源码吗?
19、DJango源码里,你映像比较深的
20、公司内部代码书写规范要求
pipe8 restful规范 三次握手四次挥手 正则 numpy使用过吗 ndarray和list区别 3大器 python错误处理 数据结构:链表双链表 队列(消息队列) 元类 抽象类 nginx