TypeError:不支持的操作数类型:'int' 和 'str
我写了一个脚本来计算一个叫做 program_width
的变量的值,但我遇到了一个奇怪的错误。
这个错误是:TypeError: 不支持的操作数类型:'int' 和 'str'
错误出现在这一行:
program_start = 350 + program_width
这是我使用的代码:
if datetime.timedelta(minutes = 10) <= program_duration <= datetime.timedelta(minutes = 30):
program_width = "250"
elif datetime.timedelta(hours = 1) <= program_duration <= datetime.timedelta(hours = 1.29):
program_width = "500"
elif datetime.timedelta(hours = 1.30) <= program_duration <= datetime.timedelta(hours = 1.45):
program_width = "750"
elif datetime.timedelta(hours = 1.46) <= program_duration <= datetime.timedelta(hours = 2):
program_width = "1000"
if program_width > 1:
if program_notification:
button_nofocus = 'channels_bar1.png'
button_focus = 'channels_yellow.png'
else:
button_nofocus = 'channels_bar1.png'
button_focus = 'channels_yellow.png'
if program_width < 65:
program_title = ''
else:
program_teststart = 350 + program_width
print program_teststart = 350 + program_width
我希望把这个变量 program_width
的值加起来,得到一个返回值,比如说:350 + 500 = 850
。
有没有人知道怎么修复这个错误?
2 个回答
1
试试这个,在你给 program_width
赋值的所有地方:
program_width = 250
注意我把数字周围的 ""
去掉了。那些引号表示这个值是一个 字符串,而你不能把数字和字符串相加。我很确定你是想把 program_width
当作一个整数来使用。现在这样就可以正常工作了:
program_teststart = 350 + program_width
1
你把 program_width
设置成了一个字符串 "500"
,而不是整数 500
。然后你试着把它和整数 350
相加。这两者是不同的类型,错误信息正好告诉你哪里出错了,你不能把整数和字符串相加。
我猜你一开始就想要它是一个整数,所以
program_width = "500"
应该改成
program_width = 500
但是如果你真的有某种原因想把它当作字符串(你几乎肯定不需要这样做),你可以用 int()
函数把字符串转换成整数。
program_start = 350 + int(program_width)