Python脚本if条件判断未按预期执行,总是输出sell如何排查?
Python if分支逻辑异常排查结果
核心错误点
你代码中elif分支的条件表达式存在严重逻辑错误,导致该分支条件永远为真,只要第一个if不满足就必然进入该分支:
- 错误写法:
5.5<=9.32 or 9.6 - 第一个问题:
5.5<=9.32是固定常量比较,结果永久为True,直接让整个条件成立 - 第二个问题:即便调整为变量比较,
or 9.6的写法也不符合Python语法规则:非零数字在布尔判断中恒为True,会直接让整个表达式结果为真
修复方案
首先明确你要判断的业务逻辑,正常应该是判断你抓取到的动态价格是否符合区间要求,假设你要判断的价格变量为price,正确的条件写法示例如下(可根据你的实际业务区间调整):
# 示例逻辑:price落在[5.5, 9.32]区间 或 大于等于9.6时触发sell elif (5.5 <= price <= 9.32) or (price >= 9.6):
完整修正后的代码示例:
# 先将抓取到的元素值转成float类型的价格变量 price = float(driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[1]/div[3]/div[2]/div[1]/div/table/tbody/tr[1]/td[2]').text) if len(enterlist) == 0: print('no list') # 替换为你实际需要的判断逻辑 elif (5.5 <= price <= 9.32) or (price >= 9.6): print('sell') closelist.append([price]) else: print('no list no sell')
内容的提问来源于stack exchange,提问作者Hayden
相关产品推荐
相关产品推荐

