我正在开发程序,但收到一条错误消息,内容为:
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")
对不起,奇怪的变量名
答案 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)
始终记住::要连接多个字符串,可能只需要字符串即可。例如,您不能将int
与str
连接起来。
因此要进行打印,您必须将其转换为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")
希望这会有所帮助!如果您仍然遇到相同或不同的错误,请在评论中让我知道。