|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z
elif y < z:
    small = y
else:
    small = z
如题,1、首先第一个问题:xyz都给定义了数值,下面那些条件判断是干啥的,small不就直接等于4了吗?
分析: if x<y, 这里是大前提
x = small , if z < samll , small = z,
这里用了两个if,
第二个if是在第一个if条件限制下进行的,y最大,X次之,Z最小,不成立就进行下个判断
2、 elif没有缩进,这是另一种情况 ,即是x >= y 为前提,
elif y < z ,这时候 small = y,
问题二:这里若是x=y,那么系统不会判定 small = x = y?
三元操作符:三元操作符格式:i =(成立) if (条件) else (不成立)
当条件成立时,变量i=左边,当条件不成立时,变量i=右边。
填入以上逻辑,
3、 small = x if (x < y and x < z) else (y if y < z else z)
这里的else z,为什么可以直接写进去,它不是属于第三种情况吗,和 y if y < z之间为什么不需要 or 或者and
本帖最后由 昨非 于 2020-10-12 16:44 编辑
答案里: - small = x if (x < y and x < z) else (y if y < z else z)
复制代码
后面小括号存在一个嵌套的三元运算,
其实不用考虑这么多的,这道题的本意是让small 等于三者的最小值,
小甲鱼老师举的例子里直接给出xyz了,所以下面的代码显得有些“多此一举”的样子
不用想这么多,分析下答案中的逻辑:
如果x小于y且小于z,small = x,没问题
当()里的东西不成立时(即:x大于y或x大于z,x直接被排除),下面就看嵌套的部分:
所以:如果y<z成立,small = y,否则等于z,完成
|
|