TypeError:-:“ list”和“ int”的不受支持的操作数类型

时间:2019-05-14 14:01:24

标签: python python-3.x

我做错了什么? 我刚刚开始学习python,所以我不太了解,请帮忙。 任务:将华氏度转换为摄氏度,反之亦然。 华氏度和摄氏温度的整数度在不同的行中给出。将计算出的转换值打印在不同的行上。

Input:95_F
      73_C
a=input().split('_F')
b=input().split('_C')
a1=(5/9*(a-32))
a2=(9/5*b+32)
print (a1)
print (a2)
Traceback (most recent call last):
  File "jailed_code", line 3, in <module>
    a1=(5/9*(a-32))
TypeError: unsupported operand type(s) for -: 'list' and 'int'

2 个答案:

答案 0 :(得分:2)

input().split()为您提供了一个列表,并且您尝试用int减去它,因此出现错误TypeError: unsupported operand type(s) for -: 'list' and 'int'

要解决此问题,您想通过splitting在字符串split之后获得列表的第一个元素,并通过int(var)将字符串转换为整数

#Get the first element of the list after splitting the string, and convert that string to an integer
a=int(input().split('_F')[0])
b=int(input().split('_C')[0])

#Do the conversion
a1=(5/9*(a-32))
a2=(9/5*b+32)

#Print the temperatures
print(a1)
print(a2)

输出将为

35.0
163.4

答案 1 :(得分:0)

分割返回列表(元素类型等于字符串)

a=input().split('_F')
b=input().split('_C')

a=int(a[0])
b=int(b[0])

a1=(5/9*(a-32))
a2=(9/5*b+32)
print (a1)
print (a2)