采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
>>> x=2 >>> n=[ ] >>> (x>5 or n.append('x<5')) and n.append('x>5') >>> print(n) >>> ['x<5'] 为什么可以这样添加列表?为什么不能这样添加字典?希望老师解释一下前者能添加的原理?还有后者不能添加的原因。谢谢老师
从最外层开始看,用A、B、C替换掉三个表达式:
(A or B and C)
or和and优先级相同,程序从左向右执行,即等价于:
((A or B)and C)
运行顺序理清后,开始执行代码
步骤一(A or B)结果为 true:
① x > 5 结果为 false
② n.append('x<5') 结果为 true (此时已为n赋值)
步骤二( true and C):
根据and的运算特性,已经拿到true就不再继续运算,故C无需执行,直接返回结果
综上两个append只有前面的运行了一次,所以print(n)结果为 ['x<5']
你好,首先谢谢你的回答,现在我已经明白了怎么运行了,而且我发现你的解释中有几个错误,我们交流一下,以下是我了解的思路: 1.逻辑表达式的优先级 Not > And > or 2.append( )函数的返回值为 None 为False 3.And 逻辑运算 即使第一个表达式为True 它也会比较第二个 是否True 如果第一个 为False 它就不会去管第二个值了(⁄ ⁄•⁄ω⁄•⁄ ⁄) 代码运行: x=2 所以 x>5 为False 表达式等价于 (F1 or F2) and F3 F2 and F3 F2 即 添加了列表
x=10 所以 x>5 为True 表达式等价于 (T or F1) and F2 T and F2 F2 即 添加x>5的列表元素
登录后可查看更多问答,登录/注册
语法精讲/配套练习+思考题/原生爬虫实战
5.7k 7
2.5k 3
2.2k 5
4.2k 22
2.3k 19