AllenCYL 发表于 2020-4-30 11:11:20

初学者关于三元操作符的问题

群里的各位老师好,
我想请教一个问题,关于《第007、008讲:了不起的分支和循环1、2》中,
“将x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
      small = z
elif y < z:
    small = y
else:
    small = z
以三元操作符实现”之后的结果,我有些看不明白,请问大神指点。

变更后的脚本:“small = x if (x < y and x < z) else (y if y < z else z)”

请问,左边条件第二个 “and x < z”,这个条件是通过什么信息和逻辑得到的?

谢谢~!!

永恒的蓝色梦想 发表于 2020-4-30 11:14:58

and 是逻辑运算符,如果说两个条件中有一个为假则返回假

冬雪雪冬 发表于 2020-4-30 11:15:26

if (x < y and x < z) 如果x < y并且x < z,则x肯定是最小的,small等于x

sunrise085 发表于 2020-4-30 11:17:28

small = x if (x < y and x < z) else (y if y < z else z)
拆开之后是这样子的。
if x<y and x<z:
    small=x
else:
    if y<z:
      small=y
    else:
      small=z
x<y and x<z就是两个逻辑表达式做与运算啊。

Twilight6 发表于 2020-5-1 00:17:48

本帖最后由 Twilight6 于 2020-5-1 08:59 编辑

# 实例01:编程实现用户登录
# 提示登录的用户输入用户名和密码
# 如果用户名和密码都输入正确, 则提示“欢迎登录”
# 如果用户名或密码输入错误,则提示“用户名或密码输入错误”
# 假定用户名是:steven,密码是:123456
# 操作代码
username = input('请输入用户名:')
password = input('请输入用户密码:')
result = '登入成功!' if username == 'steven' and password == 123456 else '登入失败' # 三元操作符
print(result)

#实例02:编程实现输入两个不相等的数字,判断两个数字的大小
number1 = float(input('请输入一个数字:'))
number2 = float(input('请输入不同的数字:'))
print('number1 大于 number2' if number1 > number2 else 'number2 大于 number1') # 三元操作符
给你两个实例看看~

xxxif <条件> else yyy

xxx 是if条件成立后会打印的结果,yyy是if 条件不成立的结果


页: [1]
查看完整版本: 初学者关于三元操作符的问题