咱们首先,把三元操作符的语句块确定下来:
- ('条件判断为真时的处理') if ('条件的表达式') else ('条件判断为假时的处理')
复制代码
那么,分析原来的长篇代码:
首先判断 x 是否小于 y ,
如果小于,那么先认为 x 是最小的数,
再判断 z 是不是比它还小,
如果确实比他小,那么就可以确定最小的是 z
否则,判断 y 是否小于 z
如果小于,那么可以肯定 y 是最小的数,因为 x 不可能比 y 大,而 y 又是剩下的相对小的那个
再不然,就只能是 z 最小了,因为别的不可能比它大
综上所述,在 x < y 并且 x < z 的时候,最小值为 x 。先打出最小值为 x 那部分:
- (x) if (x < y and x < z) else ()
复制代码
那么最小值不是 x 的时候呢?
无非两种情况,y 或者 z 是最小值,
按照字母表的顺序,接下来是 y ,那么这个时候,y 怎么能是最小值呢?
y < z 的时候。
于是得出:
- (x) if (x < y and x < z) else ((y) if (y < z) else ())
复制代码
最后剩下个 z 添到后边:
- (x) if (x < y and x < z) else ((y) if (y < z) else (z))
复制代码
把可以省去的括号,给它省去、删掉,就得了
- x if (x < y and x < z) else (y if y < z else z)
复制代码
如此,可以得到一个最小值,但仅仅是把数给找到了,并没有作答,相当于算个算数算半天,得到答案了,可是没写上,第二天交作业的时候,老师就问怎么没做作业啊?这时候多冤呐?
所以咱还得把该记的给写上,得赋值,于是就成了:
- small = x if (x < y and x < z) else (y if y < z else z)
复制代码
你要是一字一句,仔仔细细看完了,我相信你能看懂也有耐心,我也相信我写的明白。