我已经包含了整个问题说明和所使用的代码。当我尝试使用char_list结构的两个替代公式时,它们都已包括在内并已注释掉;在两种情况下问题仍然存在。
为什么' '.join()
不清理空格?
'''Write a password generator in Python. Be creative with how you generate passwords - strong passwords have a mix of lowercase letters, uppercase letters, numbers, and symbols. The passwords should be random, generating a new password every time the user asks for a new password. Include your run-time code in a main method.'''
import random
def password_generator():
#char_str = '1234567890abcdefgh!@#$%(^)%($('
#char_str = ['a', 'b', 'c', 'd', '1', '2', '3', '4']
password = []
length = int(input("How long should the password be?"))
while len(password) < length:
password.append(char_str[random.randint(0, len(char_str) - 1)])
return(' '.join(password))
print(password_generator())
示例输出:% ) 0 4 d c f b % 7
答案 0 :(得分:2)
您要在每个字符之间加上文字空格,这就是每个字符之间要有空格的原因。为了解决这个问题,您可以加入一个空字符串:
"".join(password)
或者,您也可以只构建一个字符串而不是一个列表:
password = ""
while len(password) < length:
password += char_str[random.randint(0, len(char_str) - 1]
答案 1 :(得分:-2)
''.join(password)可以做到这一点。改用''.join(password)。