已强制类型转换仍出现TypeError:str与int无法比较的问题求助
解决Python中字符串与整数比较的TypeError问题
问题根源
你代码里的类型转换操作没有生效:
int(distance_required)只是临时生成了一个整数,但没有把这个值重新赋值给distance_required,所以该变量仍然是从reader读取的字符串类型。- 而
aircraft[2]本身是整数类型(参考你提供的aircrafts列表),当你尝试用整数和字符串比较大小的时候,就会触发TypeError: '<' not supported between instances of 'int' and 'str'。
另外原代码存在缩进错误:print("Hi")没有缩进在if语句块内,会引发语法错误。
修正后的代码
for row in reader: if OverseasAirport == row[0]: # 直接将读取的字符串转换为整数并赋值 distance_required = int(row[2]) for aircraft in aircrafts: if aircraft_type in aircraft: # aircraft[2]本身是整数,直接使用即可 distance_possible = aircraft[2] # 现在两个变量都是整数类型,可以正常比较 if distance_possible < distance_required: print("Hi")
额外注意事项
- 确保
aircraft_type是你提前定义好的变量(比如指定的机型名称,如"Large narrow body"),否则内层的if条件永远不会触发。 - 如果后续
aircraft[2]有可能是字符串类型,也需要对它做同样的转换:distance_possible = int(aircraft[2])。
内容的提问来源于stack exchange,提问作者swappr
相关产品推荐
相关产品推荐

