我试图写一个简单的密码检查作业,寻找至少一个大写字母,一个小写字母,一个数字,它需要6个或更多个字符。在
我在这里和其他地方找了又找,但要么我读到的不符合我们的指示,要么答复比我自己更先进。我得到的任何帮助都将作为我作业中的评论。在
这只是我代码中检查大写字母的部分,它只查看整个字符串,而不是单个字符,我似乎找不到解决方案。在
passwd = input('enter password: ') ## we are actually using (sys.agrv)
## but I am using this for testing
character = passwd[0:]
lcase_bad = False
for character in passwd:
if not character.islower() > 1:
lcase_bad = True
if lcase_bad:
print('Password must include lowercase letters ')
else:
print('password accepted')
你快拿到了!如果您从代码中删除
> 1
(这不会真正起到任何作用),您将得到以下信息:这将测试整个字符串是否由小写字母组成。如果是,
lcase_bad
将保留False
;否则,它将成为True
。如果你把False
和True
翻过来,称之为lcase_good
,你就可以看到至少有一个字符是小写的。在正如iCodez所指出的,您还可以使用
^{pr2}$any
在生成器理解下重写它。它读起来相当容易:但是,您可能还没有得到生成器的理解,所以为了清晰起见,最好使用
for
循环。在一个接一个地检查所有这些情况:
for character in passwd:
在这里,您将遍历输入的每个字母。在
当你做},具体取决于字符串是否为大写字母。
if not character.islower() > 1:
时,它总是正确的。.islower()
返回True
或{not False == 1
,因为boolean是int.not True == 0
的子类。两者都不大于一。在你可以做一些类似的事情:
当然,如果你想告诉对方密码没有的内容,这是很有用的。但是,您也可以只做一个测试。在
相关问题 更多 >
编程相关推荐