摆脱白色 space 和字符

Getting rid of white space and characters

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

我试过同时打印两个变量,但仍然是白色 space。我看过格式化打印的教程,但它们非常混乱。此外,当我尝试使用 .strip() 和 .replace() 时,它说 'tuple' 对象没有属性 'replace'。

(PS。密码生成器导入一个带有拼音字母表(phoneticlist)的文本文件。另外,生成器有不同的模式。'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)

我认为我在这里寻找的两个解决方案是格式化打印以使输出没有 spaces,或者弄清楚如何正确使用剥离和替换以便正确打印出来. 我正在寻找的输出类似于 'alpha234' 没有 space 或其他字符。

我相信你需要:

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)

这一行 return 是元组而不是字符串

trivpass = trivpastr, str(passnum)

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

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

replace.strip() 方法不是就地方法。他们 return 新字符串并且不更改您使用的字符串。