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

时间:2019-02-23 08:57:41

标签: python

我尝试运行一段代码,并在此行代码中收到上述错误:

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'

我该如何解决?任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

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

box3, "for", + str(randomPersuade2)

解释错误

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

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

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

因此,您可以执行以下操作:“一元+的错误操作数类型:'str'”。

答案 1 :(得分:0)

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

private ObservableCollection<Student> _students;

public ObservableCollection<Student> Students
    {
        get => _students;
        set
            {
                if (_students == value) return;
                _students = value;
                RaisePropertyChanged("Students");
            }
        }

答案 2 :(得分:0)

,操作员会在字符串后自动添加空格,因此请在操作员后删除+号:

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