|  | 
 
 
 楼主|
发表于 2021-7-14 22:03:57
|
显示全部楼层 
| 本帖最后由 fc5igm 于 2021-7-14 22:05 编辑 
 
 嗯。。貌似不是我想要的样子,不过还是选你吧。
 这是我后来搞得代码
 
 复制代码
class Timer():
    def __init__(self):
        self.n=1
    def __add__(self, other):
        self.n=self.n+other
        return self.n-1
timer=Timer()
# def jg(n):
#     tab='\t'
#     if n!=4:
#         print(tab*(n),f'if jg{n}==1:',sep='')
#         jg(n+1)
#         print(tab*(n),'else:',sep='')
#         jg(n+1)
#     else:
#         return print(tab*(n),f'return {timer+1}',sep='')
# print('if jg0==1:')
# jg(1)
def jg(n):
    tab='\t'
    if n!=21 and n!=13:                 #最后一个jg编号是n-1
        f.write(f'{tab*(n+1 if n<13 else n)}if jg{n}==1:\n')
        jg(n+1)
        f.write(f'{tab*(n+1 if n<13 else n)}elif jg{n}==0:\n')
        jg(n+1)
    elif n==13:
        jg(n+1)
    else:
        f.write(f'{tab*(n+1 if n <13 else n)}return "{timer+1:06}"\n')
with open('jg_grammer.py','a') as f:
    f.write('def verify(jg0,jg1,jg2,jg3,jg4,jg5,jg6,jg7,jg8,jg9,jg10,jg11,jg12,jg14,jg15,jg16,jg17,jg18,jg19,jg20):\n')
    f.write('\tif jg0==1:\n')
f=open('jg_grammer.py','a')
jg(1)
被注释的部分就是print,不过因为是要做个筛选条件的判断模块出来,所以后边又改了下,改成了写成文件的样子。
 通过代码生成的文件节选
 
 复制代码def verify(jg0,jg1,jg2,jg3,jg4,jg5,jg6,jg7,jg8,jg9,jg10,jg11,jg12,jg14,jg15,jg16,jg17,jg18,jg19,jg20):
        if jg0==1:
                if jg1==1:
                        if jg2==1:
                                if jg3==1:
                                        if jg4==1:
                                                if jg5==1:
                                                        if jg6==1:
                                                                if jg7==1:
                                                                        if jg8==1:
                                                                                if jg9==1:
                                                                                        if jg10==1:
                                                                                                if jg11==1:
                                                                                                        if jg12==1:
                                                                                                                if jg14==1:
                                                                                                                        if jg15==1:
                                                                                                                                if jg16==1:
                                                                                                                                        if jg17==1:
                                                                                                                                                if jg18==1:
                                                                                                                                                        if jg19==1:
                                                                                                                                                                if jg20==1:
                                                                                                                                                                        return "000001"
                                                                                                                                                                elif jg20==0:
                                                                                                                                                                        return "000002"
                                                                                                                                                        elif jg19==0:
                                                                                                                                                                if jg20==1:
                                                                                                                                                                        return "000003"
                                                                                                                                                                elif jg20==0:
                                                                                                                                                                        return "000004"
                                                                                                                                                elif jg18==0:
                                                                                                                                                        if jg19==1:
                                                                                                                                                                if jg20==1:
                                                                                                                                                                        return "000005"
                                                                                                                                                                elif jg20==0:
                                                                                                                                                                        return "000006"
                                                                                                                                                        elif jg19==0:
                                                                                                                                                                if jg20==1:
                                                                                                                                                                        return "000007"
                                                                                                                                                                elif jg20==0:
                                                                                                                                                                        return "000008"
                                                                                                                                        elif jg17==0:
                                                                                                                                                if jg18==1:
                                                                                                                                                        if jg19==1:
                                                                                                                                                                if jg20==1:
                                                                                                                                                                        return "000009"
                                                                                                                                                                elif jg20==0:
                                                                                                                                                                        return "000010"
                                                                                                                                                        elif jg19==0:
                                                                                                                                                                if jg20==1:
                                                                                                                                                                        return "000011"
                                                                                                                                                                elif jg20==0:
                                                                                                                                                                        return "000012"
                                                                                                                                                elif jg18==0:
 | 
 |