2014-11-15 2 views
0

я написал простой питон генератор паролей:Как изменить вывод этой программы на 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.

Я действительно не нужно знать ответ, практический результат будет таким же, мне просто супер любопытно.

ответ

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...#...,[email protected]' 
+0

Большое спасибо, я чувствую себя настолько глупо сейчас, особенно, поскольку уже знал, как использовать "" .join. Я приму ваш ответ как можно скорее – chilliefiber

Смежные вопросы