请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

和大家分享一个if...else...的写法,顺便问下老师这样写是否有缺点

num1,num2 = 5,6
def a():
    return 'a'
def b():
    return 'b'
print ([a(),b()][num1==num2 or num1<num2])
# 完全通过表达式来代替if和else,从网上找到的例子,但是因为并没有经常用这样写法,不知道会不会有什# 么问题,希望老师和同学指正。


正在回答

2回答

7七月 2018-06-17 21:34:59

我觉得没必要,但这个代码风格吗,个人自由,没有标准。

0 回复 有任何疑惑可以回复我~
  • 提问者 鹈鹕灌顶 #1
    非常感谢!嗯,就是感觉这种写法很简洁,应该还是看场景,很复杂的场景这么写可读性没法保证
    回复 有任何疑惑可以回复我~ 2018-06-18 16:37:08
7七月 2018-06-17 08:57:39

看不懂。。。为什么要这么写。

0 回复 有任何疑惑可以回复我~
  • 提问者 鹈鹕灌顶 #1
    传统写法,要写if...else... 至少4行,这样1行就解决了[函数1,函数2][表达式],表达式会有两种结果0或1(也就是真和假),结果就是[函数1,函数2][0]或[函数1,函数2][1],这样就可以通过下标来取函数的调用。
    回复 有任何疑惑可以回复我~ 2018-06-17 14:51:03
  • 提问者 鹈鹕灌顶 #2
    [函数1,函数2][表达式],如果表达式为真则:[函数1,函数2][1] 结果为:函数2(调用函数2);如果表达式为假则:[函数1,函数2][0]结果为:函数1(调用函数1);相当于if 表达式:函数2 else:函数1;
    回复 有任何疑惑可以回复我~ 2018-06-17 14:55:23
  • 提问者 鹈鹕灌顶 #3
    从网上找到的例子,试了一下能实现,就是感觉写法过于奇特,不知道有没有什么隐患
    回复 有任何疑惑可以回复我~ 2018-06-17 14:56:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信