如何在一行内打印输出?含密码生成代码的技术咨询
解决单行打印密码的问题
嘿,我看了你的代码,问题出在每次循环里都只生成单个字符就执行打印操作,而且password变量每次都会被覆盖成单个字符,所以才会输出多行零散的字符。另外注意下拼写:你写的lenght应该是length哦,不然可能会触发小错误~
下面给你两种解决方法,都能实现单行输出完整密码:
方法一:先构建完整密码再打印
先初始化一个空字符串,循环里逐个追加随机字符,最后一次性打印完整密码:
import random import string char = string.ascii_letters + string.digits + string.punctuation length = random.randint(8, 16) # 修正拼写错误 password = "" # 初始化空字符串存储密码 for i in range(length): password += random.choice(char) # 逐个追加字符 print('your password is === > ', password) # 最后一次性打印
方法二:用join简化代码(更Pythonic)
可以直接用join结合生成器表达式,一行生成完整密码,省去显式的循环:
import random import string char = string.ascii_letters + string.digits + string.punctuation length = random.randint(8, 16) password = ''.join(random.choice(char) for _ in range(length)) print('your password is === > ', password)
这样运行后,就能在一行里输出完整的密码啦~
内容的提问来源于stack exchange,提问作者Farshad Javid
相关产品推荐
相关产品推荐

