|
|

楼主 |
发表于 2018-4-5 11:00:17
|
显示全部楼层
但是我还是我理解的方式给你说一下吧。
原条件分支和三元运算的关系:
1.可以说,条件分支和三元运算没有直接关系,但是结果是一样的。
2.从三元运算直接转换过来的条件分支结构和原条件分支可能不一样,但是这两个条件分支的结果是达到一个目的的。例如:
- #小甲鱼课后题目 第7,8课动动手第一题
- #原条件分支结构
- '''
- x, y, z = 6, 5, 4
- if x < y:
- small = x
- if z < small:
- small = z
- elif y < z:
- small = y
- else:
- small = z
- print(small)
- '''
- #变为三元运算
- '''
- x, y, z = 6, 5, 4
- small = x if (x < y and x < z) else(y if y < z else z)
- print(small)
- '''
- #改变原条件分支结构
- '''
- x, y, z = 6, 5, 4
- if x < y:
- if x < z:
- small = x
- elif y < z:
- small = y
- else:
- small = z
- print(small)
- '''
复制代码
你看看原条件分支和直接转换过来的条件分支是不一样的。(说明,三元运算的上面的是原条件分支,三元下面的是直接从三元运算转换过来的条件分支)
3.以上可以说,你不用总是原条件分支和三元运算之间转换的想法。你就单个的理解吧。但是熟练之后再相互之间转换练习一下。(转换正确的唯一标准是结果一样就行。如果你能多找到一样结果的条件分支就更好了呗。)
4.在上面的总结上漏掉的再补补吧。你完全透彻的理解了条件分支和三元运算的情况下,程序上到底用哪个比较好,你自己选择,可能用三元容易解决问题,也有可能条件分支容易解决。如果条件分支杂乱复杂,你就不用转换成三元运算,别人看了也会晕。主要是if语句里的语块简短,这样用三元表达更加好看一点。
现在谈谈理解三元操作符的问题:
x, y, z = 6, 5, 4
small = x if (x < y and x < z) else(y if y < z else z)
print(small)
三元基本公式:(to_ture) if (expression)else (to_faulse) :如果表达式正确,等于if前面的值,否则else后面的值
在分析升级版的:
small = x if (x < y and x < z) else(y if y < z else z) :三元运算里只有if_else关键字,你看原条件分支有多个elif关键字,是吧。所以呢三元和原条件分支考虑问题的思路是不一样的。三元只用用if_else来考虑问题。你看有两个大括号是吧,和基本公式对应的话,前面的大括号是expression,后面的大括号是to_faulse对应。但是和to_faulse对应的还是内部三元运算,所以else执行的应该是内部三元运算,内部三元运算执行过程是,如果y<z通过,就等于if前面的值,否则else后面的值。 |
|