|
|
发表于 2014-11-17 18:11:40
|
显示全部楼层
- str1 = '''拷贝过来的字符串'''
- countA = 0 #我记录密码前的大写~
- countB = 0 #我叫密码~
- countC = 0 #我记录密码后的大写~
- length = len(str1) #方便迭代^_^
- for i in range(length):
- if str1[i] == '\n': #三引号的字符串有换行符。
- continue #进行下一次迭代跳过下面All!
- if str1[i].isupper(): #如果这时候是个大写
- if countB == 1: #判断密码君有木有粗现
- countC += 1 #粗现了就可以给记录员C加一个
- countA = 0 #记录员A工作做完了。
- else:
- countA += 1 #密码君木粗现记录员A加一个。
- continue #下一次迭代
- if str1[i].islower() and countA == 3: #判断密码君应不应该粗现。
- countB = 1 #我是密码君呦~
- countA = 0
- target = i #将此时的密码君的下标记录(假的也会记录,不过会被真的覆盖。)
- continue #下一次迭代
- if str1[i].islower() and countC == 3: #由于A和C不会同时等于3。
- print(str1[target], end='') #所以C是3就符合条件,把此时的密码君输出,
- #end = ''是为了让排齐,默认end = '\n'。
- countA = 0
- countB = 0
- countC = 0 #初始化,上同!
复制代码 如果还不懂,可以看一下我这个~~
- str1 = """我是拷贝的字符串!"""
- result = []
- str1 = str(str1) #排排站~
- str1 = str1.replace('\n','') #混在里面的换行都去掉!
- for i in range(len(str1)): #同样是方便迭代
- if i+7 <= len(str1): #这步可以先不看。
- """根据藏密码的字符串只有大写和小写!每8个看看是否符合要求"""
- if str1[i:i+3].isupper() and str1[i-1].islower():
- # 取密码前3个是否为大写 取密码前第四个是否为小写,大写就不符合有且只有了。
- if str1[i+3].islower(): #判断了前三个符合条件。所以判断是否是密码君~
- if str1[i+4:i+7].isupper() and str1[i+7].islower():
- # 判断密码君后三个是否为大写 ,判断密码君后面第4个是否为小写,原因上同。
- result.append(str1[i+3])
- #全都符合条件,木错就是密码君了。
- print(result)
复制代码
|
|