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

Python3中能否像C一样在if语句内使用inline赋值(赋值表达式)

问题结论

这种写法不能直接像C语言一样正常使用,具体说明如下:

  • 如果你使用的是Python 3.8之前的版本:这段代码会直接抛出语法错误。Python在3.8版本才引入海象运算符:=支持表达式内赋值,更早版本的=属于纯赋值语句,不能放在括号中作为表达式的一部分参与运算。
  • 如果你使用的是Python 3.8及之后的版本:你需要把代码中的赋值符号=替换为海象运算符:=,修改后的代码才能正常运行,修正后示例如下:
import math
for i in range(100):
    if((result := math.factorial(i)) % 10  == 0):
        print(i,"->",result)

补充说明:C语言里的=赋值本身是有返回值的表达式,所以可以直接写在判断条件内;但Python传统的=是语句,没有返回值,只有3.8版本新增的海象运算符:=才是带返回值的赋值表达式,用法和C语言的赋值表达式类似,但使用的符号不同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:24:05