我写了一个简单的python密码生成器:
import string
import random
print "Password generator will create a random customizable password."
print "Choose your options wisely."
number = int(raw_input("How many letters do you want in your password?"))
caps = str(raw_input("Do you want capital letters in your password? Y/N:"))
symbols = str(raw_input( "Do you want punctuation and other symbols in your password? Y/N:"))
otherchoice = str(raw_input( "Do you want numbers in your password? Y/N:"))
punctuation = ("!", ".", ":", ";", ",", "?", "'", "@", "$", "~", "^","%", "#", "&", "/")
numbers = map(str,range(0,10))
stringpunctuation = "".join(punctuation)
stringnumbers = "".join(numbers)
lowercase = string.ascii_lowercase
uppercase = string.ascii_uppercase
if caps == "Y":
characters = lowercase + uppercase
else:
characters = lowercase
if symbols == "Y":
characters += stringpunctuation
if otherchoice == "Y":
characters += stringnumbers
password = random.sample(characters, number)
print "The password is", password
这是我运行时在终端中显示的内容的示例:
Password generator will create a random customizable password.
Choose your options wisely.
How many letters do you want in your password?15
Do you want capital letters in your password? Y/N:Y
Do you want punctuation and other symbols in your password? Y/N:Y
Do you want numbers in your password? Y/N:Y
The password is ['x', 'p', 'E', 'X', 'V', '#', ',', '@', 'q', 'N', 'F', 'U', 'b', 'W', '.']
我怎样才能使输出像这样(使用示例中的密码):
xpEXV#,@qNFUbW.
我真的不需要知道答案,实际结果会一样,我只是超级好奇。
答案 0 :(得分:4)
将角色加入str.join()
method;选择一个连接字符串并调用该方法,传入您的列表:
password = ''.join(password)
这会将字符与空字符串(''
):
>>> password = ['x', 'p', 'E', 'X', 'V', '#', ',', '@', 'q', 'N', 'F', 'U', 'b', 'W', '.']
>>> ''.join(password)
'xpEXV#,@qNFUbW.'
对于其他用途,你可以选择一个不同的木匠:
>>> '->'.join(password)
'x->p->E->X->V->#->,->@->q->N->F->U->b->W->.'
>>> '...'.join(password)
'x...p...E...X...V...#...,...@...q...N...F...U...b...W....'