如何调试这个Python代码?

时间:2017-08-21 13:22:37

标签: python-3.x

我有这个分配:

  

编写python代码以检查给定的单词是否是有效密码。如果

,密码被认为是有效的      

1)以字母
开头   2)必须包含数字
  3)并且必须包含一个字符

     

如果无效打印无效,则有效打印有效

上面的代码是否针对上述问题提供了正确的代码?这个Python代码是否适用于上述问题?

        a=input()
         s=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']       
        x=['0','1','2','3','4','5','6','7','8','9']
        y=['~','!','@','#','$','%','^','&','*','(',')','_','+',';','[']
        m=''
        n=''
        while (c<=len(a)):
        c=c+1
        for i in range(0,27):
         if(s[i]==a[0]):    
          for z in a:
            for l in range(0,11):
                if(x[i]==z):
                    for i in range(0,16):
                        if(y[i]==z):
                            m='valid'
                        else:
                            continue
                            n='invalid'

                else:
                    continue
                    n='invalid'
       else:
        continue
        n='invalid'
       print(n)
       print(m) 

1 个答案:

答案 0 :(得分:-1)

  

(上述问题的正确代码下面的代码是否会使这个PYTHON代码适用于上述问题?)

答案:不,您可以将您的代码与我的代码进行比较,您使用了不必要的循环和列表,而且您的代码显然不可读

  

我该如何解决?

见下面的代码:

a= str(raw_input("enter password "))


y=['~','!','@','#','$','%','^','&','*','(',')','_','+',';','[']


if (a[0].isalpha()) and sum(c.isdigit() for c in a) and sum(a.count(i) for i in y):
  print " valid password"


else :
 print "wrong!"
  

explaintion:

注意1:(a [0] .isalpha())等于您的字母表列表,我用它来设置更短更易读的代码

注2: sum(c中的c的c.isdigit())确定你的密码是否有数字你可以为你的数字指定一个范围,该范围应该存在于密码中: sum(a)中c的c.isdigit()&gt; 2表示如果密码中只有2位数,则密码为vald