如何在 python 中循环时对字母使用 "in" 运算符?

How to use "in" operator for alphabets while looping in python?

我正在尝试以下问题:

某网站要求用户输入用户名和密码进行注册。

编写一个程序来检查用户输入的密码的有效性。

您的程序应接受一系列以逗号分隔的密码,并将根据上述标准检查它们。将打印符合条件的密码,每个密码以逗号分隔。

但是对于我的 python 代码:

values=input("Enter the set of passwords :")
list1=[]
list1=values.split(',')
num1=0
num2=0
num3=0
num4=0
for i in list1:
    num1=len(i)
    if(num1>=6 and num1<=12):
        for z in i:
            if (z.isupper()):
                num1=1
            if(z.islower()):
                num2=1
            if(z.isdigit()):
                num3=1
            if(z in ('#','$','@')) :
                print(z)
                num4=1
    if(num1+num2+num3+num4==4):
        print(i)
    else:
        print("passkey failed")

为什么我在没有通过标准的情况下得到的最后一个密钥是正确的。

发生这种情况是因为您的计数器永远不会递减。处理完第一个正确的密钥后,所有密钥的值都将为 1.

后续运行将成功通过最终的 if 测试,仅此而已。

更改代码以在 循环内重新初始化:

for i in list1:
    num1 = len(i) 
    num2 = num3 = num4 = 0
    # rest stays the same