You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已强制类型转换仍出现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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:04:59