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

Python中or运算符用于变量赋值的逻辑原理是什么?

Python中or运算符的赋值逻辑解析

先明确:end = end or lst[-1]不会同时给end赋两个值,它是利用Python中or运算符的短路求值逻辑来做默认值处理,具体规则如下:

  • Python的or运算符会从左到右依次判断操作数:
    • 若左侧操作数是真值(非None、非0、非空容器/字符串等),直接返回左侧值
    • 若左侧操作数是假值(None、0、""、[]等),才会返回右侧操作数

结合你给出的代码来看:

  • 当调用函数时没有传入end参数,end的默认值是None(假值),此时end or lst[-1]会返回lst[-1](列表最后一个元素的值),最终end被赋值为这个值
  • 当调用函数时传入了有效的end值(比如3、5这类真值),or会直接返回传入的end值,不会再处理右侧的lst[-1]

举个实际例子验证:
假设lst = [1,2,3,4,5]

  • 调用range_in_list(lst):end为None,最终end被赋值为5,切片lst[0:5+1]即整个列表,求和结果为15
  • 调用range_in_list(lst, end=3):end是3(真值),直接使用该值,切片lst[0:3+1]即[1,2,3,4],求和结果为10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:55:29