蠢办法,条件一个一个过,不过在判断重复子串的部分,时间复杂度可以修改的更好 while True: try: a=input() up=0 low=0 sz=0 fh=0 import string punc=string.punctuation flag='OK' if len(a)<=8: flag='NG' print(flag) else: for i in a: if i.isdigit(): sz=1 elif i.islower(): low=1 elif i.isupper(): up=1 elif i in punc: fh=1 l=[up,low,sz,fh] if ...