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

Python大于/小于运算符使用异常,8被判定大于40如何解决?

问题原因

你当前传入的输入列表所有元素、以及要比较的阈值都是字符串类型,而非整数类型。Python中字符串的大小比较逻辑是逐位对比字符的ASCII编码值:
对比'8'和'40'时,第一位先比'8'和'4',字符'8'的ASCII码(56)远大于'4'的ASCII码(52),所以会直接判定'8' > '40'为真,因此8会被错误筛选进结果。

解决方法

有两种常用的修正方案:

  • 方案1:提前把输入列表和阈值转为整数类型,推荐该方案,后续如果有其他数值运算也不需要重复转类型
# 先把输入列表所有元素转成整数
inLst = [int(i) for i in ['23', '67', '8', '90', '56', '45', '38', '69', '30', '68']]
# 阈值也转成整数
n = int('40')

def displaylarger():
    greater = [i for i in inLst if i > n]
    print(greater)

# 调用后输出正确结果:[67, 90, 56, 45, 69, 68]
  • 方案2:在列表推导式比较时临时转类型,适合不需要保留原始字符串数据的场景
inLst = ['23', '67', '8', '90', '56', '45', '38', '69', '30', '68']
n = '40'

def displaylarger():
    greater = [i for i in inLst if int(i) > int(n)]
    print(greater)

内容的提问来源于stack exchange,提问作者TempoR0

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:24:02