CSP2023—3月LDAP求指正

做了一下CSP2023-3月的题目,第三题LDAP,能拿到前百分之四十的数据分应该是挺简单的,本人很菜,非计算机专业,用python编了一下。我的思路很简单,就是普通的if else条件语句,在网上看到别人用栈操作,但我觉得只要做对前百分之四十不需要那么复杂,用if else应该是可以的。它给的测试用例我输出正确了(但这不算什么我知道),可是提交上去居然是零分,也就是一个都不对。能不能帮我指正一下,我这样写代码有什么问题?好让我见识一下考CSP需要达到什么水平。
P1P2为源代码,下面也有,可以直接复制,后面几张图是题目。

img

img

img

img

img


n = int(input())
user = []
for i in range(n):
    one_info = dict()
    dn, atri_n, *atri = map(int, input().split())
    one_info['DN'] = dn
    one_info['atri_name'] = [atri[j] for j in range(0, len(atri)-1, 2)]
    one_info['atri_num'] = [atri[j] for j in range(1, len(atri), 2)]
    user.append(one_info)
m = int(input())
express = []
for i in range(m):
    express.append(input())


def simple(exp):
    correspond = []
    if exp[1] == ':':
        for info in user:
            if int(exp[0]) in info['atri_name']:
                idx = info['atri_name'].index(int(exp[0]))
                if info['atri_num'][idx] == int(exp[2]):
                    correspond.append(info['DN'])
    elif exp[1] == '~':
        for info in user:
            if int(exp[0]) in info['atri_name']:
                idx = info['atri_name'].index((int(exp[0])))
                if info['atri_num'][idx] != int(exp[2]):
                    correspond.append(info['DN'])
    return correspond


def muti(exp):
    corre1 = simple(exp[2:5])
    corre2 = simple(exp[7:10])
    if exp[0] == '&':
        correspond = [i for i in corre1 if i in corre2]
    elif exp[0] == '|':
        correspond = corre1 + corre2
    return correspond


for exp in express:
    if len(exp) == 3:
        co_user = simple(exp)
        print(*co_user, sep=' ')
    if len(exp) == 11:
        co_user = muti(exp)
        print(*co_user, sep=' ')

以下答案由GPT-4.0Plus大模型与博主A努力中.......共同编写:

  1. 证书上的“认证数量”应修改为“认证编号”。“认证数量”一词可能会引起误解,而“认证编号”能更清晰准确地表达该信息。
  2. 证书右上角的二维码应采用更高分辨率以保证扫码的准确性。当前分辨率较低,扫码阅读信息时可能出现失真。
  3. 证书上的英文“ID Number”应修改为“Certificate Number”或“Certification Number”。“ID Number”的表述比较笼统,而后两者能更精确地表示该字段所代表的信息。
  4. 证书中日期的排版可以进行微调,使用减号“-”将年、月、日连在一起的形式,如“xxxx-xx-xx”的形式。这样可以使日期的阅读更加清晰流畅。
  5. 证书正中间的“Certified”字样可以采用较大的字号,以凸显该证书的认证性质。目前该字样尺寸较小,不太够醒目。
  6. 证书上的蓝色倾斜条纹背景纹理效果较弱,考虑使用其他更醒目的背景纹理或色块来增强证书的美观度。
  7. 证书底部的英文签名较为模糊,建议重新扫描或调整分辨率使签名更加清晰。这也有助于证书真实性的验证。