while True:
password=input("Enter a password. Make sure it:\nContains at least 1 capital letter\nContains at least 6 letters\n")
time.sleep(0.35)
if len(password)>5 and password.islower=="False":
break
你怎么做这个停止。如果它有一个大写字母且超过6个字符,我希望它停止。
答案 0 :(得分:5)
这里:
password.islower=="False"
首先,你没有调用方法 - 你需要添加parens - 所以你比较一个方法和一个字符串。它永远不会是真的......
然后,一旦解决了这个问题:
password.islower() == "False"
你最终将布尔值与字符串进行比较。它也永远不会是真的,你想与布尔False
(没有引号)进行比较:
password.islower() == False
最后一点,这通常是拼写:
not passsword.islower()
答案 1 :(得分:1)
if len(password)>5 and not password.islower():
或
if len(password)>5 and password.islower() == False:
会起作用。
答案 2 :(得分:-1)
因为islower
不是属性,而是一个函数。试试这个:
not password.islower()
此外,如@Dan所述,您将islower()
函数(布尔值)的结果与字符串 "False"
进行比较。在Python中,可以直接使用布尔结果,如上所示,而不将其与字符串"False"
(这是错误的)或布尔值False
(这是奇怪且危险的)进行比较。如果密码包含大写字符,则islower()==False
将为True
。