Python密码生成器I’;我正在尝试编码isn’;不起作用,但有’;没有错误消息

Python密码生成器I’;我正在尝试编码isn’;不起作用,但有’;没有错误消息,python,passwords,Python,Passwords,我试图让它与用户输入的正则表达式一起工作,但它不工作,没有错误消息。也许我的if语句没有被识别 print(“type password”) password =input() pattern=r”([0-10000000][a-z][A-Z])” match=re.search(pattern,password) if match and (len(password)<9) and (len(password)>4): print(“password is stro

我试图让它与用户输入的正则表达式一起工作,但它不工作,没有错误消息。也许我的if语句没有被识别


print(“type password”)
password =input()

pattern=r”([0-10000000][a-z][A-Z])”

match=re.search(pattern,password)

if match and (len(password)<9) and (len(password)>4):
    print(“password is strong”)
else: 
    print(“password should have at least one letter, number, and capital letter included and be between 5 and 8 characters long”)```

打印(“键入密码”)
密码=输入()
图案=r“([0-10000000][a-z][a-z])”
匹配=重新搜索(模式、密码)
如果匹配且(len(密码)4):
打印(“密码很强”)
其他:
打印(“密码应至少包含一个字母、数字和大写字母,长度在5到8个字符之间”)```

您可以尝试以下版本:

import re  # you probably missed the import 
print("type password")  # ALL quotes were of a different style! 
password =input()
pattern=r"([0-9]*)([a-z]*)([A-Z]*)"  # the regex was a little wrong try: regex101.com
match=re.search(pattern,password)
if match and 9 > len(password) > 4:  # changed also the condition to a more pythonic
    print("password is strong")
else:
    print("password is not between 5 and 8 characters long")
如果你是python新手,你也可以检查一下,它有很好的练习,你可以请导师帮忙

享受python的乐趣它很棒:-)


导入此
#显示python的禅意

您可以尝试此版本:

import re  # you probably missed the import 
print("type password")  # ALL quotes were of a different style! 
password =input()
pattern=r"([0-9]*)([a-z]*)([A-Z]*)"  # the regex was a little wrong try: regex101.com
match=re.search(pattern,password)
if match and 9 > len(password) > 4:  # changed also the condition to a more pythonic
    print("password is strong")
else:
    print("password is not between 5 and 8 characters long")
如果你是python新手,你也可以检查一下,它有很好的练习,你可以请导师帮忙

享受python的乐趣它很棒:-)


导入此
#显示python的禅意

让我们浏览一下当前的正则表达式,
([0-10000000][a-z][a-z])

  • [0-10000000]
    匹配0-1范围内的单个字符或字符
    0
  • [a-z]
    然后匹配a-z范围内的单个字符
  • [A-Z]
    匹配A-Z范围内的单个字符
  • 将其放在一起:匹配数字0或1,后跟小写字母,后跟大写字母。这与你的意图大不相同


    我提出的正则表达式是:
    ^(?=.*\d)(?=.[a-z])(?=.[a-z])[\da-zA-z]{5,8}$
    。I,这样您就可以很容易地看到它的功能,并对其进行测试

    以下是一个示例程序:

    重新导入
    pwd_patt=re.compile(r“^(?=.*\d)(?=.[a-z])(?=.[a-z])[\da-zA-z]{5,8}$”)
    测试标准=[“Amc01”、“Ac”、“aa0aa”、“AA0AAAADWW”、“ghG789”]
    对于测试中的电流:
    打印(当前打印,打印部分完全匹配(当前打印))
    
    输出:

    Amc01
    交流无
    aa0aa无
    aa0aadwaw无
    ghG789
    
    让我们浏览一下您当前的正则表达式,
    ([0-10000000][a-z][a-z])

  • [0-10000000]
    匹配0-1范围内的单个字符或字符
    0
  • [a-z]
    然后匹配a-z范围内的单个字符
  • [A-Z]
    匹配A-Z范围内的单个字符
  • 将其放在一起:匹配数字0或1,后跟小写字母,后跟大写字母。这与你的意图大不相同


    我提出的正则表达式是:
    ^(?=.*\d)(?=.[a-z])(?=.[a-z])[\da-zA-z]{5,8}$
    。I,这样您就可以很容易地看到它的功能,并对其进行测试

    以下是一个示例程序:

    重新导入
    pwd_patt=re.compile(r“^(?=.*\d)(?=.[a-z])(?=.[a-z])[\da-zA-z]{5,8}$”)
    测试标准=[“Amc01”、“Ac”、“aa0aa”、“AA0AAAADWW”、“ghG789”]
    对于测试中的电流:
    打印(当前打印,打印部分完全匹配(当前打印))
    
    输出:

    Amc01
    交流无
    aa0aa无
    aa0aadwaw无
    ghG789
    
    它不工作到底意味着什么?你能分享一些输入/输出的例子吗?我不认为正则表达式做了你认为它做的事情…你的正则表达式检查每次都返回
    None
    。你需要重新评估你的模式。这将有所帮助;它不能搜索输入以查看它是否符合模式的条件吗?Regex可以做到这一点,我认为@PacketLoss的重点是你的不是。我建议您使用类似的方法来检查您当前的正则表达式,并构建一个新的正则表达式。但是,我的正则表达式是否有明显的错误?我想是的。
    [0-10000000]
    打算做什么?它不起作用的确切含义是什么?你能分享一些输入/输出的例子吗?我不认为正则表达式做了你认为它做的事情…你的正则表达式检查每次都返回
    None
    。你需要重新评估你的模式。这将有所帮助;它不能搜索输入以查看它是否符合模式的条件吗?Regex可以做到这一点,我认为@PacketLoss的重点是你的不是。我建议您使用类似的方法来检查您当前的正则表达式,并构建一个新的正则表达式。但是,我的正则表达式是否有明显的错误?我想是的。
    [0-10000000]
    意味着什么?最初,引号是相同的。每个人似乎都在建议regex101.com,但即使在那里,我也无法让regex与字符串匹配。不管怎样,谢谢。是的,有一些较短的也可以这样做:([\w]*)([\d]*)+甚至用大括号量化,以便在正则表达式中检查pw的长度,但我们不想帮助或混淆。。。所以一步一步;)最初,引语是相同的。每个人似乎都在建议regex101.com,但即使在那里,我也无法让regex与字符串匹配。不管怎样,谢谢。是的,有一些较短的也可以这样做:([\w]*)([\d]*)+甚至用大括号量化,以便在正则表达式中检查pw的长度,但我们不想帮助或混淆。。。所以一步一步;)@凯纳:你还有什么问题吗?是的,我如何循环语句,以便在输入无效的情况下,可以键入另一个密码并再次检查?@Kenna你在努力解决哪部分问题?我想这完全是另一个问题。是的,如果你不介意的话,这是另一个问题。if语句只工作一次,我希望输入被多次输入,但在第二次输入任何密码时,它会给出一个错误,如“(无论输入什么)都无法识别”。@Kenna您还有其他问题吗?是的,我如何循环语句,以便在输入无效时,可以再次键入并检查另一个密码吗?@Kenna您正在努力使用哪一部分?我想这完全是另一个问题。是的,如果你不介意的话,这是另一个问题。if状态