鱼C论坛

 找回密码
 立即注册
查看: 1795|回复: 8

[已解决]入门07,08课后题small

[复制链接]
发表于 2017-8-16 22:05:52 | 显示全部楼层 |阅读模式

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

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

x
http://bbs.fishc.com/thread-38269-1-1.html
small = x if (x < y and x < z) else (y if y < z else z)

没看懂,是怎么优化出来的。
最佳答案
2017-8-16 23:08:34
哦,看到完整的程序了。
  1. x, y, z = 6, 5, 4
  2. if x < y:
  3.     small = x #如x<y,先设定small为x
  4.     if z < small:
  5.         small = z #如果z<x和y的最小值,则small为z
  6. elif y < z: #如果x >y 且 y <= z
  7.     small = y #则small为y
  8. else: #如果x >y 且 y >= z
  9.     small = z
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-8-16 22:21:48 | 显示全部楼层
  1. def small(x, y, z):
  2.     if x < y and x < z:
  3.         return x
  4.     elif y < z:
  5.         return y
  6.     else:
  7.         return z
复制代码

这是我对这句代码的理解,不知道对不对。。同为新手,请指正,谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-16 22:26:13 | 显示全部楼层
small = x if (x < y and x < z) else (y if y < z else z)
可分解为:
  1. if (x < y and x < z):
  2.     small = x
  3. elif y < z:
  4.     small = y
  5. else:
  6.     small = z
复制代码

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

使用道具 举报

 楼主| 发表于 2017-8-16 22:56:19 | 显示全部楼层
冬雪雪冬 发表于 2017-8-16 22:26
small = x if (x < y and x < z) else (y if y < z else z)
可分解为:

第2,第3句,没毛病。但第一句
x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z
怎么来的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-16 23:01:21 | 显示全部楼层
x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z

你这段程序是哪里来的?不对呀。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-16 23:07:20 | 显示全部楼层
冬雪雪冬 发表于 2017-8-16 23:01
你这段程序是哪里来的?不对呀。

http://bbs.fishc.com/thread-38269-1-1.html,开始我就给了问题网址入口,下次提问我会说明这是入口
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-16 23:08:34 | 显示全部楼层    本楼为最佳答案   
哦,看到完整的程序了。
  1. x, y, z = 6, 5, 4
  2. if x < y:
  3.     small = x #如x<y,先设定small为x
  4.     if z < small:
  5.         small = z #如果z<x和y的最小值,则small为z
  6. elif y < z: #如果x >y 且 y <= z
  7.     small = y #则small为y
  8. else: #如果x >y 且 y >= z
  9.     small = z
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-16 23:11:44 | 显示全部楼层
我感觉作业中的这段程序不太好理解,有点绕。你带入数字走一遍流程再看看。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-16 23:20:07 | 显示全部楼层
本帖最后由 kidd_hlt 于 2017-8-16 23:31 编辑
冬雪雪冬 发表于 2017-8-16 23:08
哦,看到完整的程序了。


虽然我的问题是,为何是
x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:#一定要小于Z,不然往下执行。MMP研究了半天。

small = x if (x < y and x < z)

写成这样,但看了你的解释。勉强自己领悟了。过
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-1 14:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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