【问题标题】:Getting rid of white space and characters摆脱空白和字符
【发布时间】:2019-03-30 17:10:18
【问题描述】:

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

我尝试将这两个变量一起打印,但仍有空白。我看过格式化打印的教程,但它们非常令人困惑。此外,当我尝试使用 .strip() 和 .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)

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

【问题讨论】:

  • trivpass = f'{random.randint(100,999)}{random.choice(phoneticlist)}'。如果仍然需要从trivpass 中删除' 和空格,最好从phoneticlist 中删除它们,这样一开始就无法添加它们。

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


【解决方案1】:

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

trivpass = trivpastr, str(passnum)

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

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

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

【讨论】:

    【解决方案2】:

    我相信你需要:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多