我想做一个筛选符合条件的数据的代码,但不知道出了什么问题,求大佬解答。。。
import relowerRegex = re.compile('')
upperRegex = re.compile('')
digitRegex = re.compile('')
teshuzhifu = re.compile('[$#@]')
wrongRegex = re.compile('[^a-zA-Z0-9$#@]')
i = 0
for a in range(3):
password = input('Enter your password:')
if notlowerRegex.search(password) == None :
i=i+1
if notupperRegex.search(password) == None :
i=i+1
if not digitRegex.search(password) == None :
i=i+1
if notteshuzhifu.search(password) == None :
i=i+1
iflen(password)>8 :
i=i+1
if(i >=5):
print("%s"%(password))
Enter your password:ABd1234@1
Enter your password:6546541
Enter your password:6498845
6498845
我本来要输出ABd1234@1
结果输出流最后一个。
出了什么问题吗????
你这个。。。。。。。这样写,肯定只能输出最后一个
你的变量i在第一次循环之后没重置,第二次循环,第三次循环一直在累加
而且你这样写,就算重置了,也是只对第三次输入的判断,如果不符合条件,就直接不输出,也不会输出第一个
那应该怎么改呢???
大佬求助,作业要交了{:5_100:} 学c的sjj 发表于 2020-11-22 19:32
那应该怎么改呢???
大佬求助,作业要交了
import re
lowerRegex = re.compile('')
upperRegex = re.compile('')
digitRegex = re.compile('')
teshuzhifu = re.compile('[$#@]')
wrongRegex = re.compile('[^a-zA-Z0-9$#@]')
times=3
result=[]
while times:
i = 0
password = input('Enter your password:')
# print(lowerRegex.search(password))
# print(upperRegex.search(password))
# print(digitRegex.search(password))
# print(teshuzhifu.search(password))
if not lowerRegex.search(password) == None:
i = i + 1
if not upperRegex.search(password) == None:
i = i + 1
if not digitRegex.search(password) == None:
i = i + 1
if not teshuzhifu.search(password) == None:
i = i + 1
if len(password) > 8:
i = i + 1
# print(i)
if (i >= 5):
result.append(password)
times -=1
print(result)
#password: ABd1234@1
#password: 6546541
#password: 6498845
疾风怪盗 发表于 2020-11-22 23:25
每个密码用逗号分隔。
例:如果以下密码作为程序的输入:
ABd1234@1,a F1#,2w3E*,2We3345
然后,程序的输出应该是:
ABd1234@1
如果要只输一行数据,并且要用逗号隔开该怎么搞呢??
大佬带带我{:5_109:} 学c的sjj 发表于 2020-11-23 22:10
每个密码用逗号分隔。
例:如果以下密码作为程序的输入:
ABd1234@1,a F1#,2w3E*,2We3345
这样不是更简单?
先input了这个ABd1234@1,a F1#,2w3E*,2We3345,用逗号split分割成列表,再循环
上面这步代替了while
然后就是和while里面的代码一样的判断了 疾风怪盗 发表于 2020-11-23 22:50
这样不是更简单?
先input了这个ABd1234@1,a F1#,2w3E*,2We3345,用逗号split分割成列表,再循环
上面 ...
import re
lowerRegex = re.compile('')
upperRegex = re.compile('')
digitRegex = re.compile('')
teshuzhifu = re.compile('[$#@]')
wrongRegex = re.compile('[^a-zA-Z0-9$#@]')
#times=3
result=[]
#while times:
i = 0
password = input('Enter your password:')
password = password.split(",")
password = str(password)
# print(lowerRegex.search(password))
# print(upperRegex.search(password))
# print(digitRegex.search(password))
# print(teshuzhifu.search(password))
if not lowerRegex.search(password) == None:
i = i + 1
if not upperRegex.search(password) == None:
i = i + 1
if not digitRegex.search(password) == None:
i = i + 1
if not teshuzhifu.search(password) == None:
i = i + 1
if len(password) > 8:
i = i + 1
# print(i)
if (i >= 5):
result.append(password)
# times -=1
print(result)
#password: ABd1234@1
#password: 6546541
#password: 6498845
好像出问题了,他循环没有执行。。。
能改一下吗。。{:5_92:} 学c的sjj 发表于 2020-11-24 17:35
import re
lowerRegex = re.compile('')
你为什么不循环呢?
import re
lowerRegex = re.compile('')
upperRegex = re.compile('')
digitRegex = re.compile('')
teshuzhifu = re.compile('[$#@]')
wrongRegex = re.compile('[^a-zA-Z0-9$#@]')
result = []
password = input('Enter your password:')
password = password.split(",")
print(password)
for p in password:
i = 0
if not lowerRegex.search(p) == None:
i = i + 1
if not upperRegex.search(p) == None:
i = i + 1
if not digitRegex.search(p) == None:
i = i + 1
if not teshuzhifu.search(p) == None:
i = i + 1
if len(p) > 8:
i = i + 1
if (i >= 5):
result.append(p)
print(result)
# password: ABd1234@1,6546541,6498845
页:
[1]