Python密码生成器I’;我正在尝试编码isn’;不起作用,但有’;没有错误消息
我试图让它与用户输入的正则表达式一起工作,但它不工作,没有错误消息。也许我的if语句没有被识别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
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范围内的单个字符我提出的正则表达式是:
^(?=.*\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范围内的单个字符我提出的正则表达式是:
^(?=.*\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状态