学c的sjj 发表于 2020-11-19 10:50:18

我想做个筛选符合条件的密码的程序,就是不知道哪里出了问题,求大佬解答

import re

lowerRegex = re.compile('')
upperRegex = re.compile('')
digitRegex = re.compile('')
teshuzhifu = re.compile('[$#@]')
wrongRegex = re.compile('[^a-zA-Z0-9$#@]')
int(i) = 0
for a in range(3):
password = input('Enter your password:')
if lowerRegex.search(password) == None :i=i+1
if upperRegex.search(password) == None :i=i+1
if digitRegex.search(password) == None :i=i+1
if teshuzhifu.search(password) == None :i=i+1
if len(password)<12 and len(password)>8 :i=i+1

if(i >=5):
    print("%s"%(password))




2012277033 发表于 2020-11-19 14:16:02

你这个吐槽的点太多了,
1、这句可以不用wrongRegex = re.compile('[^a-zA-Z0-9$#@]')
2、这句语法错误,不需要int()直接i=0即可int(i) = 0
改为:
i=0
3、这句意义不明,而且后续的语句没有缩进for a in range(3):
4、这里的这些判断反了,前面至少要加上not,而且判断后执行的语句要换行缩进
if lowerRegex.search(password) == None :
    i=i+1
if upperRegex.search(password) == None :
    i=i+1
if digitRegex.search(password) == None :
    i=i+1
if teshuzhifu.search(password) == None :
    i=i+1

改为:
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

学c的sjj 发表于 2020-11-20 20:28:40

2012277033 发表于 2020-11-19 14:16
你这个吐槽的点太多了,
1、这句可以不用
2、这句语法错误,不需要int()直接i=0即可


我刚学,比较菜。。。。

学c的sjj 发表于 2020-11-20 20:45:01

2012277033 发表于 2020-11-19 14:16
你这个吐槽的点太多了,
1、这句可以不用
2、这句语法错误,不需要int()直接i=0即可


import re

lowerRegex = re.compile('')
upperRegex = re.compile('')
digitRegex = re.compile('')
teshuzhifu = re.compile('[$#@]')

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

if(i >=5):
    print("%s"%(password))


好像输不出来想要的数。。。。。

2012277033 发表于 2020-11-21 00:29:48

学c的sjj 发表于 2020-11-20 20:45
import re

lowerRegex = re.compile('')


你这个改了之后只有4个条件加,我漏打那个判断长度的,将iflen(password)>8 :
    i=i+1这样加上去,表示密码长度要大于8,这样符合上面的条件,就可以打印出你想要的。

学c的sjj 发表于 2020-11-21 11:35:06

2012277033 发表于 2020-11-21 00:29
你这个改了之后只有4个条件加,我漏打那个判断长度的,将这样加上去,表示密码长度要大于8,这样符合上面 ...

还是有点问题。。
Enter your password:ABd1234@1

Enter your password:657465

Enter your password:51541
51541
它输出的是我打的最后一位数。。。。
代码更改后import re

lowerRegex = re.compile('')
upperRegex = re.compile('')
digitRegex = re.compile('')
teshuzhifu = re.compile('[$#@]')

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))
   

2012277033 发表于 2020-11-22 03:42:03

学c的sjj 发表于 2020-11-21 11:35
还是有点问题。。
Enter your password:ABd1234@1



你这个是因为print放在for外面了,或者你的for是多余的,最终应该改成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))或者你想测试三次的话,就改成这样:import re
lowerRegex = re.compile('')
upperRegex = re.compile('')
digitRegex = re.compile('')
teshuzhifu = re.compile('[$#@]')

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))
页: [1]
查看完整版本: 我想做个筛选符合条件的密码的程序,就是不知道哪里出了问题,求大佬解答