摆脱空白和人物

问题描述 投票:0回答:2

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

我曾尝试将两个变量一起打印,但仍有空白区域。我已经查看了格式化打印的教程,但它们非常令人困惑。此外,当我尝试使用.strip()和.replace()时,它说'tuple'对象没有属性'replace'。

(PS。密码生成器使用拼音字母(phoneticlist)导入文本文件。此外,生成器具有不同的模式.'trv'部分代表琐碎的难度。

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'没有空格或其他字符。

python python-3.x python-3.7
2个回答
1
投票

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

trivpass = trivpastr, str(passnum)

如果你想连接trivpastrpassnum你需要像这样使用+运算符

trivpass = trivpastr + str(passnum)
trivpass = trivpass.replace("'","")
trivpass = trivpass.strip()

replace.strip()方法不是就地方法。它们返回新的字符串,不会更改您使用的字符串。


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)
© www.soinside.com 2019 - 2024. All rights reserved.