Python脚本不起作用但不提供错误消息

时间:2016-11-02 18:21:27

标签: python

我是编程/脚本编程的新手,只是为了理解python2.7工作的基础知识。无论如何,我在这里有一个脚本,我一直在努力随机生成一个由字母,数字和特殊字符组成的密码。

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 个答案:

答案 0 :(得分:5)

这是因为你的main()函数没有做任何事情。将其更改为:

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

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

答案 1 :(得分:3)

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()

首先你没有任何缩进(可能是复制和粘贴问题)。然后你从来没有调用generate_password所以除了将长度设置为4之外,它从未做过任何事情。