2017-08-21 137 views
-7

我有這樣的分配新建分配FY:如何調試此Python代碼?

寫檢查,如果給定的字是一個有效的密碼或不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

你檢查你的代碼嗎?如果它的工作,你必須得到正確的結果(C = C + 1),而在無效指數下,請編輯它 –

回答

-1

(下面給出了正確的代碼對於上述問題的代碼將針對上述問題 - 這Python代碼運行)

ANSWARE:沒有,你可以比較你的代碼我所著的代碼,您使用不必要的neted循環和列表和你的代碼是沒有明確的不可讀

我怎樣才能解決呢?

見下面的代碼:

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())等於您的字母列表,並我用它來設置代碼更短,更具可讀性

n ote 2: sum(c.isdigit()for c中的a)確定您的密碼是否有數字,您可以指定一個範圍爲您的數字,該數字應該存在於前綴爲: sum(c.isdigit()對於c中a)> 2意味着如果您的密碼中只有2位數字,則密碼爲vald

+0

感謝您的幫助,我只是一個初學者,因此我只知道基本功能 – user8460608