鱼C论坛

 找回密码
 立即注册
查看: 1817|回复: 4

[已解决]有关课后第7,8讲习题

[复制链接]
发表于 2017-11-2 09:34:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第三题:(x < y and [x] or [y] ) [0]实现的是什么样的功能?
答案说是过去的版本中,前辈们自创用于实现三元运算的。有关于and ,or,甚至于这里[]在这里的意义都不是很懂,请大神们稍详细的解释下这个表达式的原理,谢谢了。
本人是纯新手之前从未接触编程,又有点钻牛角尖,已经看到了30课时,现在才开始做题,发现很多细节根本不懂
最佳答案
2017-11-2 10:38:56
JAY饭 发表于 2017-11-2 10:25
谢谢,and的优先级大于or,所以,我可以这样理解对吧:
x < y 为真,继续运算到and的下一位:x,而or因为 ...


(x < y and [x] or [y] ) [0]
小括号是为了保证这个三元操作的整体性,不会被其他操作符影响
括号内部会返回一个只有一个元素的list对象,用[0]将这个元素取出来
因为后面的操作可能是需要的是x或y本身的数据类型,不一定是list

举个例子:
  1. >>> a = x <y and [x] or [y]
  2. >>> a
  3. [3]
  4. >>> type(a)
  5. <class 'list'>
  6. >>> b = (x <y and [x] or [y])[0]
  7. >>> b
  8. 3
  9. >>> type(b)
  10. <class 'int'>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-11-2 09:51:24 | 显示全部楼层
(x < y and [x] or [y] ) [0]实现的是什么样的功能?
等价于:
  1. if x < y:
  2.     result = x
  3. else:
  4.     result = y
复制代码

   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-2 10:25:59 | 显示全部楼层
BngThea 发表于 2017-11-2 09:51
(x < y and [x] or [y] ) [0]实现的是什么样的功能?
等价于:

谢谢,and的优先级大于or,所以,我可以这样理解对吧:
x < y 为真,继续运算到and的下一位:x,而or因为短路逻辑的关系,后面的y则忽略。
x < y 为假,则and两边都为假:false,所以继续运算至or的右边y。
那这个表达的“()”和"[0]"的意义是什么呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-2 10:38:56 | 显示全部楼层    本楼为最佳答案   
JAY饭 发表于 2017-11-2 10:25
谢谢,and的优先级大于or,所以,我可以这样理解对吧:
x < y 为真,继续运算到and的下一位:x,而or因为 ...


(x < y and [x] or [y] ) [0]
小括号是为了保证这个三元操作的整体性,不会被其他操作符影响
括号内部会返回一个只有一个元素的list对象,用[0]将这个元素取出来
因为后面的操作可能是需要的是x或y本身的数据类型,不一定是list

举个例子:
  1. >>> a = x <y and [x] or [y]
  2. >>> a
  3. [3]
  4. >>> type(a)
  5. <class 'list'>
  6. >>> b = (x <y and [x] or [y])[0]
  7. >>> b
  8. 3
  9. >>> type(b)
  10. <class 'int'>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-2 10:50:00 | 显示全部楼层
BngThea 发表于 2017-11-2 10:38
(x < y and [x] or [y] ) [0]
小括号是为了保证这个三元操作的整体性,不会被其他操作符影响
括号内 ...

懂了,一个是列表类型,一个是整型,虽然不知道[0]为什么能起到取值的作用,应该是还没学到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-28 02:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表