在python中创建密码程序

时间:2017-05-09 19:34:38

标签: python passwords uppercase lowercase

我在python中创建一个区分大小写的密码程序,其中密码必须包含大写字母,小写字母且最少必须为8个字符。这是代码:

password = input("Please enter a password:")
upperFlag = False
lowerFlag = False
while len(password) < 8:
    try:
        password = input("Password not long enough")
    except:
        print("Error")
for char in password:
    if char == char.upper():
        upperFlag = True
        print("Up")

    elif char == char.lower():
        lowerFlag = True

代码现在只是一个概念,这就是为什么我编写代码来打印大写字母。我的问题是如何让程序只打印一次这个语句,而不是打印每个字符? (例如“向上”,“向上”,“向上”等)

3 个答案:

答案 0 :(得分:2)

由于您无论如何都要设置标记,如果设置了标记,只需在末尾打印。

for char in password:
    if char.isupper():
        upperFlag = True
    else:
        lowerFlag = True
if upperFlag:
    print("Up")

或者不是显式循环,你可以使用这样的理解:

if any(char.isupper() for char in password):
    print("Up")

答案 1 :(得分:0)

您必须先进行测试,看看您是否已经打印过&#39; Up&#39;言。

if not upperFlag:
     upperFlag = True
     print('Up')

并且不要忘记在代码开头将upperFlag设置为False,否则您将获得NameError

答案 2 :(得分:-1)

只需在break之后插入print("Up")语句:

password = input("Please enter a password:")
upperFlag = False
lowerFlag = False
while len(password) < 8:
    try:
        password = input("Password not long enough")
    except:
        print("Error")
for char in password:
    if char == char.upper():
        upperFlag = True
        print("Up")
        break #<-- insert break here

    elif char == char.lower():
        lowerFlag = True