From a9a51ba0b724560d780dd7d32dcd34eca0c7e773 Mon Sep 17 00:00:00 2001 From: wangweiye7840 Date: Wed, 24 Jan 2024 16:51:10 +0800 Subject: [PATCH] =?UTF-8?q?database=5Ftools=E4=B8=AD=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AF=BB=E6=89=BE=E4=B8=8B=E4=B8=80=E4=B8=AA=E7=A9=BA=E9=97=B2?= =?UTF-8?q?=E9=A2=98=E5=8F=B7=E5=92=8C=E5=AF=BB=E6=89=BE=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E7=A9=BA=E9=97=B2=E9=A2=98=E5=8F=B7=E5=9D=97=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 工具v2/database_tools.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/工具v2/database_tools.py b/工具v2/database_tools.py index 366b3843..aeee8e57 100644 --- a/工具v2/database_tools.py +++ b/工具v2/database_tools.py @@ -204,6 +204,21 @@ def spareIDs(dictname): #返回空闲题号 return output #返回的是一个多行的字符串, 每一行中含有一个空闲题号的闭区间 +def NextSpareID(num,adict): #返回adict中下一个空闲的题号 + num = int(num) + while str(num).zfill(6) in adict: + num += 1 + return num + +def NextSpareIDBlock(num,adict): #返回adict中下一个空闲的题号块 + start = NextSpareID(num,adict) + larger_ID_list = [int(id) for id in adict.keys() if int(id)>start] + if larger_ID_list == []: + end = 999999 + else: + end = min(larger_ID_list) - 1 + return str(start)+":"+str(end) + def GenerateProblemListFromString(data): #从来自.tex文件的字符串生成题目列表, 每个item是一道题目, 新一行的%用作前缀 try: data = re.findall(r"\\begin\{document\}([\s\S]*?)\\end\{document\}",data)[0]