鱼C论坛

 找回密码
 立即注册
查看: 976|回复: 5

[已解决]關於[第007、008讲:了不起的分支和循环1、2 | 课后测试题及答案]

[复制链接]
发表于 2020-6-16 20:09:01 | 显示全部楼层 |阅读模式

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

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

x
測試題2. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
  
答:x, y, z = z, y, x

問題:
這樣y不是沒有交換到,還是等於y嗎...?

動動手1. Python 的作者在很长一段时间不肯加入三元操作符就是怕跟 C 语言一样搞出国际乱码大赛,蛋疼的复杂度让初学者望而生畏,不过,如果你一旦搞清楚了三元操作符的使用技巧,或许一些比较复杂的问题反而迎刃而解。

请将以下代码修改为三元操作符实现:

x, y, z = 6, 5, 4
if x < y:
    small = x
    if z < small:
        small = z
elif y < z:
    small = y
else:
    small = z

答:small = x if (x < y and x < z) else (y if y < z else z)

問題:
雖然看懂答案,但可以幫我看看
如果寫

if x<z<y:
    small=x
elif y<z:
    small=y
else:
    small=z

或是

if x<y and x<z:
    small=x
elif y<z:
    small=y
else:
    small=z

和題目的代碼會是相等的嗎?
我想確定自己的邏輯有沒有錯
最佳答案
2020-6-17 12:00:14
本帖最后由 1223253411 于 2020-6-17 12:11 编辑

问题1:是的,y还是那个y,不过这种方法其实很少用,基本上都是两个变量互换,别太在意

问题2:三元操作符,没用过,不知道嘿嘿嘿,不过应该和条件表达式差不多,如果差不多的话,推一下就好了,
small = x if (x < y and x < z) else (y if y < z else z)
x,y,z = 6,5,4
if x<y and x < z:
    small = x
else:
    if y < z:
        small = y
    else:
        small = z

print(small)

# 应该是这样吧,如果有错的话麻烦帮我指一下,这东西还是玩不懂,反正结果是4,你的那些逻辑都没问题,求最小么,可以就行了

ps: 我就说一下哦,像条件表达式啊、列表推导式啊、字典推导式啊、等,其实都不是很重要的东西,这种只是让你的代码更加艺术,但也只限于艺术,我认为的哦,会不会根本不影响我们敲代码,这东西也只适用于简单逻辑,其他的就算了,能用到的地方少的很,只要逻辑复杂一点,基本都是一个一个来了



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-17 12:00:14 | 显示全部楼层    本楼为最佳答案   
本帖最后由 1223253411 于 2020-6-17 12:11 编辑

问题1:是的,y还是那个y,不过这种方法其实很少用,基本上都是两个变量互换,别太在意

问题2:三元操作符,没用过,不知道嘿嘿嘿,不过应该和条件表达式差不多,如果差不多的话,推一下就好了,
small = x if (x < y and x < z) else (y if y < z else z)
x,y,z = 6,5,4
if x<y and x < z:
    small = x
else:
    if y < z:
        small = y
    else:
        small = z

print(small)

# 应该是这样吧,如果有错的话麻烦帮我指一下,这东西还是玩不懂,反正结果是4,你的那些逻辑都没问题,求最小么,可以就行了

ps: 我就说一下哦,像条件表达式啊、列表推导式啊、字典推导式啊、等,其实都不是很重要的东西,这种只是让你的代码更加艺术,但也只限于艺术,我认为的哦,会不会根本不影响我们敲代码,这东西也只适用于简单逻辑,其他的就算了,能用到的地方少的很,只要逻辑复杂一点,基本都是一个一个来了



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-17 21:20:22 | 显示全部楼层
1223253411 发表于 2020-6-17 12:00
问题1:是的,y还是那个y,不过这种方法其实很少用,基本上都是两个变量互换,别太在意

问题2:三元操作 ...

這樣啊,感謝回覆^^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-17 21:35:35 | 显示全部楼层

锦上添花的东西,不会就算了,一步步写怎么了,代码能不能执行,影响代码效率吗,这东西的效率完全和你下面的那些代码一样,因为它的执行过程就是下面那样,有时候写成这样还很影响代码的可读性,看着还得绕一下,算了,代码的可读性为最高要求,读起来难受的代码绝对不是什么好代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-18 09:21:23 From FishC Mobile | 显示全部楼层
1223253411 发表于 2020-6-17 21:35
锦上添花的东西,不会就算了,一步步写怎么了,代码能不能执行,影响代码效率吗,这东西的效率完全和你下 ...

原來如此,新人還不太懂,感謝告知!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 10:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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