【发布时间】:2022-01-01 14:26:49
【问题描述】:
我之前问过这个问题,虽然 StackOverflow 好心用户的回答是对的,但它有点无法回答我的问题,或者对于像我这样的初学者来说有点复杂,所以我会再问一次:)。
所以这是一个检查字符串是否符合特定条件的代码......
def passwordlength(password: str):
upper = digit = special = False
for char in password:
if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" :
upper = True
elif char in "1234567890":
digit = True
elif char in "$#@%!":
special = True
return upper and digit and special
def password(password: str):
if passwordlength(password):
if not (6 < len(password) < 12):
return False
else:
return True
所以这部分工作正常。我的初始代码没有问题。但是,我正在尝试编辑我的代码,以便如果 一个数字、字符或字母连续出现 3 次......例如,AAA 或 ccc 或 111 或 ###,则输出将为 false强>
这是我的尝试,但根本没有用......
def passwordlength(password: str):
upper = digit = special = False
for char in password:
if char in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" :
upper = True
elif char in "1234567890":
digit = True
elif char in "$#@%!":
special = True
return upper and digit and special
def password(password: str):
if passwordlength(password):
if not (6 < len(password) < 12):
return False
for char in password:
if password.count(char) > 3:
return False
return True
return False
我应该对我的代码进行哪些更改以确保它有效??
请尽可能使用最简单的编码形式,因为我是初学者,我想在编程的同时学习 :)。另外请不要使用import 或collections.iter,因为我还没有学过……我正在网上学习python,我还没有学那么远……谢谢:)
【问题讨论】:
-
我爱
re我自己。在处理字符串时,我总是使用re。 -
我可能在这里遗漏了什么吗?我在任何地方都没有看到问题中提到的
re。
标签: python list dictionary tuples