Pythonfhf 发表于 2022-9-24 21:09:18

if语句

为啥这种if第五种形式不能用赋值语句
语句1 if 条件 else 语句2
small = a if a < b else small = b报错
print('a小') if a < b else print('b小')正常运行{:5_100:}

临时号 发表于 2022-9-24 21:12:25

代码:
a = 1
b = 2
small = a if a < b else b
print(small)
运行结果:
1

Twilight6 发表于 2022-9-24 21:12:47



三目运算符中途不能进行赋值的,因为该语法结构最终会返回一个结果,你最后赋值才是正确的做法,参考代码:

small = a if a < b else b

这里如果 if 条件成立,就将 a 赋值给 small,反之不成立,将 b 赋值给 small ,不能在 else 里面进行赋值

而 :

print('a小') if a < b else print('b小')

这段代码,没有在三目运算符过程中赋值,也就符合语法规则,不会导致报错


Pythonfhf 发表于 2022-9-24 21:24:25

Twilight6 发表于 2022-9-24 21:12
三目运算符中途不能进行赋值的,因为该语法结构最终会返回一个结果,你最后赋值才是正确的做法,参考代 ...

那三目运算符中不能赋值,只是small = a if a < b else small = b
而   if 条件1
            small = a
          else 条件2:
            small = b这个也属于三目运算中吧,但它能赋值

Twilight6 发表于 2022-9-24 21:26:07

Pythonfhf 发表于 2022-9-24 21:24
那三目运算符中不能赋值,只是small = a if a < b else small = b
而   if 条件1
            smal ...



这个不叫三目运算符,这就是普通的 if - else 条件分支

三目运算符基本结构: <if成立返回值> if <条件> else <if 不成立返回值>

Twilight6 发表于 2022-9-24 21:28:04

Pythonfhf 发表于 2022-9-24 21:24
那三目运算符中不能赋值,只是small = a if a < b else small = b
而   if 条件1
            smal ...



没认真看,你这代码连 if - else 结构都不是 ,else 处 不能写条件

只有 if 或者 else if后续才能写上条件,所以你这举的代码是错误代码

Pythonfhf 发表于 2022-9-24 21:29:30

Twilight6 发表于 2022-9-24 21:28
没认真看,你这代码连 if - else 结构都不是 ,else 处 不能写条件

只有 if 或者 else if后续才 ...

收到{:5_102:}

Twilight6 发表于 2022-9-24 21:30:48

Pythonfhf 发表于 2022-9-24 21:29
收到



加油

页: [1]
查看完整版本: if语句