摆脱空白和字符

时间:2019-03-30 17:10:18

标签: python python-3.x python-3.7

我正在创建一个密码生成器,该密码生成器结合了列表中的数字和字符串。但是,当我尝试将它们添加到一个变量中时,会添加方括号,撇号和空白。

我尝试将两个变量一起打印,但是仍然有空白。我看过格式化打印的教程,但是它们非常令人困惑。另外,当我尝试使用.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'的输出,没有空格或其他字符。

2 个答案:

答案 0 :(得分:1)

此行返回一个元组而不是字符串

trivpass = trivpastr, str(passnum)

如果要连接trivpastrpassnum,则需要使用+运算符

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)