我收到了我不太理解的错误消息

时间:2019-07-01 00:39:47

标签: python

我正在开发程序,但收到一条错误消息,内容为:

print("I will set a timer for " + shortesttime + "minutes")
TypeError: can only concatenate str (not "int") to str

我认为这意味着我必须将变量从int更改为字符串,但是当我尝试使用它时却无效。之后,我只是认为也许我没有正确理解错误消息。

以下是有关上下文的代码:

shortesttime = hwt.index(min(hwt))
smallesthwitem = (uhw[hwt.index(min(hwt))]) #it's finding the position of the smallest item in homeworktime and then, for example if the place of that was 2 it would find what's at the second place in uhw
print("So let's start with something easy. First you're going to do " + smallesthwitem)
print("I will set a timer for " + shortesttime + "minutes")

对不起,奇怪的变量名

4 个答案:

答案 0 :(得分:2)

该错误表明不允许将字符串(用+连接为整数。其他语言(想到BASIC)可以使您做到这一点。最好的办法是使用格式化程序。如果您想要简单的格式设置,则只需:

print(f"I will set a timer for {shortesttime} minutes")

格式化程序中有多个选项,可以为成千上万个其他内容添加逗号,但这比使用类型转换进行操作更容易。这种格式是在python 3.6中引入的(称为f字符串)。如果您的年龄在3.0到3.5之间,请使用

print("I will set a timer for {} minutes".format(shortesttime))

这是等效的,只是更长一点而不清楚。

答案 1 :(得分:1)

始终记住::要连接多个字符串,可能只需要字符串即可。例如,您不能将intstr连接起来。

因此要进行打印,您必须将其转换为string,在python世界中称为str

在第四行将其更改为:print("I will set a timer for " + str(shortesttime) + "minutes")

另一种方式是格式化字符串:

类似print(f"I will set a timer for {shortesttime} minutes")。格式化的字符串会自动将任何数据类型转换为字符串。

答案 2 :(得分:0)

尝试:

print("I will set a timer for " + str(shortesttime) + "minutes")

您可以将其转换为字符串。

答案 3 :(得分:0)

就像前面提到的@ferdbugs一样,您可以将任何值强制转换为string类型。
您的代码应该看起来像这样

shortesttime = hwt.index(min(hwt))
smallesthwitem = (uhw[hwt.index(min(hwt))]) #it's finding the position of the smallest item in homeworktime and then, for example if the place of that was 2 it would find what's at the second place in uhw
print("So let's start with something easy. First you're going to do " + smallesthwitem)
print("I will set a timer for " + str(shortesttime) + "minutes")

希望这会有所帮助!如果您仍然遇到相同或不同的错误,请在评论中让我知道。