【问题标题】:Python TypeError: Bad operand type for unary +: 'str'Python TypeError:一元+的错误操作数类型:'str'
【发布时间】:2019-02-23 08:57:41
【问题描述】:

我尝试运行一段代码,这行代码出现上述错误:

print("Congratulations! You swapped out a", box3, "for", + str( randomPersuade2 ) + " Dollars. Enjoy!")

box3 保存项目列表中的值

box1,box2,box3,box4, box5 = ["Car", "TV", "DVD", "Overseas Holiday", "Box of chocolates"]

randomPersuade2 是一个变量,它保存来自 random.randint() 函数的值。

randomPersuade2 = random.randint(200,5000)

如标题所述,我得到了错误

TypeError: 一元 + 的操作数类型错误:'str'

我将如何解决这个问题?任何帮助将不胜感激!

【问题讨论】:

标签: python


【解决方案1】:

这部分有问题:你有一个逗号和一个加号。您需要摆脱其中之一。

box3, "for", + str(randomPersuade2)

解释错误

在这里,Python 认为您要使用“一元”+ 运算符。

此运算符与num_a + num_b 不同。你可以这样使用它:+num.

而且它只是.. 不会改变数字的值。是的,不是很实用。但是在这里,你有一个str 对象,它不是一个数字。调用运算符的对象是“操作数”。

所以你去:“一元+的错误操作数类型:'str'”。

【讨论】:

  • 谢谢,我刚刚意识到我之前搞砸的时候有一个逗号,谢谢你提出来
【解决方案2】:

您有 2 个变量要在打印消息中使用。一个干净的方法是:

print('Congratulations! You swapped out a, {}, for, {}  Dollars. 
       Enjoy!'.format(var1,var2))

【讨论】:

    【解决方案3】:

    , 运算符在字符串后自动添加空格,因此在运算符后删除 + 号:

    print("Congratulations! You swapped out a", box3, "for", str( randomPersuade2 ) + " Dollars. Enjoy!")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-28
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 2014-01-02
      相关资源
      最近更新 更多