<p>更简单,更好,更高效,<code>random.sample</code>+<code>string.printable</code>+<code>string.digits</code>+<code>string.ascii_letters</code>:</p>
<pre><code>import random,string
strength = input("Do you want a weak, medium or strong password?: ").lower()
def password(strength):
new_password = []
if strength == 'weak':
symbols = input("Do you want symbols in your password? (#,@ etc.): ").lower()
if symbols == 'yes':
new_password.extend(random.sample(string.printable.rstrip(),8))
elif symbols == 'no':
new_password.extend(random.sample(string.digits+string.ascii_letters,8))
new_password = []
if strength == 'medium':
symbols = input("Do you want symbols in your password? (#,@ etc.): ").lower()
if symbols == 'yes':
new_password.extend(random.sample(string.printable.rstrip(),11))
elif symbols == 'no':
new_password.extend(random.sample(string.digits+string.ascii_letters,11))
new_password = []
if strength == 'strong':
symbols = input("Do you want symbols in your password? (#,@ etc.): ").lower()
if symbols == 'yes':
new_password.extend(random.sample(string.printable.rstrip(),14))
elif symbols == 'no':
new_password.extend(random.sample(string.digits+string.ascii_letters,14))
return new_password
new_password = "".join(password(strength))
print(new_password)
</code></pre>
<p>以下是输出示例:</p>
^{pr2}$