2016-11-02 37 views
0

我是一般的編程/腳本編程新手,剛剛開始理解python2.7的基本工作原理。無論如何,我在這裏有一個腳本,我一直在努力隨機生成由字母,數字和特殊字符組成的密碼。Python腳本不起作用,但沒有提供任何錯誤消息

import random 

charset="ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
charset+=charset.lower() # adds lowercase a-z to charset 
charset+="@&%_$#" # adds these special characters to the charset 
charset+="1234567890" # adds digits 0-9 to charset 

def generate_password(length): 
    """generates random password""" 
    password=[] 
    for n in range(length): 
     password.append(random.choice(charset)) 
     print password 
    return password 

def main(): 
    # test cases 
    length = 4 

    # boilerplate 
if __name__ == '__main__': 
    main() 

請原諒,如果這似乎是一個愚蠢的問題,但畢竟:(我是新來這個。當我運行上面的腳本我沒有收到輸出,以及導致我沒有錯誤消息,不知道是什麼赫克即時通訊做錯了

+2

你在哪裏使用'generate_password()'? – Alfabravo

+2

請修復您的縮進。 –

+1

'main'爲整數值'4'聲明一個名字'length'。這不會產生任何輸出。 –

回答

4

那是因爲,你的main()函數並不做任何事情改變它如下:。

def main(): 
    # test cases 
    length = 4 
    # 
    print generate_password(length) 

    # boilerplate 
if __name__ == '__main__': 
    main() 
2
import random 

charset="ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
charset+=charset.lower() # adds lowercase a-z to charset 
charset+="@&%_$#" # adds these special characters to the charset 
charset+="1234567890" # adds digits 0-9 to charset 

def generate_password(length): 

    password=[] 
    for n in range(length): 
     password.append(random.choice(charset)) 

    print password 
    return password 

def main(): 
    length = 4 
    generate_password(length) 


if __name__ == '__main__': 
    main() 

首先你沒有任何壓痕(可能已經一位警察y和粘貼問題)。然後你永遠不會調用generate_password,所以它將永遠不會做任何事情,但設置長度爲4.

相關問題