我正在创建一个密码生成器,该密码生成器结合了列表中的数字和字符串。但是,当我尝试将它们添加到一个变量中时,会添加方括号,撇号和空白。
我尝试将两个变量一起打印,但是仍然有空白。我看过格式化打印的教程,但是它们非常令人困惑。另外,当我尝试使用.strip()和.replace()时,它说“元组”对象没有属性“替换”。
(PS。密码生成器导入带有语音字母(phonelist)的文本文件。此外,生成器具有不同的模式。“ triv”部分表示琐碎的难度。
import random
passnum = random.randint(100,999)
phonum = random.randint(0,26)
trivpastr = (phoneticlist[phonum])
trivpass = trivpastr, str(passnum)
trivpass.replace("'","")
trivpass.strip()
print(trivpass)
我认为我在这里寻找的两个解决方案是对打印进行格式化,以使输出没有空格,或者弄清楚如何正确使用剥离和替换,以便正确地打印出来。 我正在寻找的是类似'alpha234'的输出,没有空格或其他字符。
答案 0 :(得分:1)
此行返回一个元组而不是字符串
trivpass = trivpastr, str(passnum)
如果要连接trivpastr
和passnum
,则需要使用+
运算符
trivpass = trivpastr + str(passnum)
trivpass = trivpass.replace("'","")
trivpass = trivpass.strip()
replace
和.strip()
方法不是就地方法。它们会返回新的字符串,并且不会更改您使用的字符串。
答案 1 :(得分:0)
我相信您需要:
trivpass = trivpastr.strip().replace("'", '') + str(passnum)
问题是trivpass = trivpastr, str(passnum)
正在创建一个元组而不是您假设的字符串。
代码:
import random
passnum = random.randint(100,999)
phonum = random.randint(0,26)
trivpastr = phoneticlist[phonum]
# Change in below line
trivpass = trivpastr.strip().replace("'", '') + str(passnum)
print(trivpass)