TypeError:必须是str,而不是int - spyder app中的Python错误

时间:2017-04-20 07:28:45

标签: spyder

def absolutevalue(num):
        if num >= 0:
            abs_num = num
        else:
            abs_num = -num
        print("The absolute value"+ abs_num)

如果我尝试运行函数absolutevalue(4),则会抛出错误,如下所示

Traceback (most recent call last):

  File "<ipython-input-16-36bd355eb83d>", line 1, in <module>
    absolutevalue(4)

  File "<ipython-input-15-42a3de37c325>", line 6, in absolutevalue
    print("The absolute value"+ abs_num)

TypeError: must be str, not int

3 个答案:

答案 0 :(得分:1)

print("The absolute value"+ abs_num)

Python在这一行中给出了错误,因为您只能使用+运算符 连接两个字符串或将两个整数一起添加 您不能将整数添加到字符串中,也不能将字符串与整数 连接起来。它在Python中的语法很糟糕。

您可以使用整数的字符串版本来解决此问题。

print("The absolute value"+ str(abs_num))

答案 1 :(得分:0)

您需要更改此行

print("The absolute value"+ abs_num)

print("The absolute value", abs_num)

答案 2 :(得分:0)

高效而快捷的方法是:

print("The absolute value {}".format(abs_num))

在Python的最新版本3.7中,我们现在已格式化字符串:

print(f'The absolute value {abs_num}')