当前位置: 首页 > 后端技术 > Python

【心得分享】Python花里胡哨的操作让人想骂人:条件语句的六种写法

时间:2023-03-25 20:05:21 Python

有人说Python入门容易,掌握难的语言,这个我很赞同。Python语言中有很多(而且越来越多)高级特性是Python爱好者真正喜欢的。在这些人眼里,能写出普通开发者看不懂的高级功能的,就是高手,就是神。但是你要知道,在团队合作中,炫技是大忌。你为什么这么说?说说我的看法:代码越简洁,逻辑越清晰,越不容易出错;在团队合作中,你的代码不仅由你维护,减少了阅读/理解他人代码逻辑的成本,是一个很好的品格。简单的代码只会使用最基本的语法糖。复杂的高级特性会有更多的依赖(比如语言版本)。在这个系列里,我会总结罗列一下,对于那些我见过的坑爹操作,今天就来热身一下,写下一些非常简单的条件判断语句中让人忍不住想骂的坑爹技巧。在这里,如果你是一个Python爱好者,你可以学到一些很酷的代码编写技巧,但是学就是学,希望你能在不同的场景中使用。0.原代码这是一段非常简单的代码,用于通过年龄来判断一个人是否成年。由于代码行数太多,有些人不愿意这样写,因为这不能体现他们多年的Python功底。ifage>18:return"adult"else:return"minor"下面我列出了这段代码的五个变体,每一个都比另一个多了6个,分开看更容易理解,放在工程中代码。用过这些学习方法的人,肯定看得目瞪口呆。了解之后,他们不经意地喊了一句:卧槽,你还能这么写?然后他们就会开始骂:这是给人看的代码吗?(第一个除外)1.第一种语法:ifelse例子>>>age1=20>>>age2=17>>>>>>>>>msg1="already"adult"ifage1>18else"minor">>>printmsg1isofage>>>>>>msg2="ofage"ifage2>18else"minor">>>printmsg2isofage>>>2.第二个语法和示例>>>msg1=age1>18and"adult"or"minor">>>msg2="adult"ifage2>18else"minor">>>>>>print(msg1)Mature>>>>>>print(msg2)Minor3.第三种语法("false","true")[condition]例子>>>msg1=("Minor","Minor")[age1>18]>>>print(msg1)Minor>>>>>>>>>msg2=("Minor","Minor")[age2>18]>>>print(msg2)不是Adult4.第四种语法(lambda:,lambda:)[]()例子>>>msg1=(lambda:"minor",lambda:"adult")[age1>18]()>>>print(msg1)是年龄>>>>>>msg2=(lambda:"minor",lambda:"ofage")[age2>18]()>>>print(msg2)Minor5.第五个语法:{True:,False:}[]示例:>>>msg1={True:"Mature",False:"Minor"}[age1>18]>>>print(msg1)Mature>>>>>>msg2={True:"Mature",False:"Minor"}[age2>18]>>>print(msg2)MatureAdult6.第六语法((<条件>)and(,)or(,))[0]示例>>>msg1=((age1>18)and("adult",)or("Minor",))[0]>>>print(msg1)Age>>>>>>msg2=((age2>18)and("Minor",)or("Minor",))[0]>>>print(msg2)未成年人上面的代码是比较简单,大家注意一下就能看懂,就不解释了。Python,这么多花哨的操作,好久不见了。.在这六种写法中,第一种是我最推荐的一种,我自己也经常用到。它简单明了,代码行数很少。其他的写法虽然可以写,但是不能用,我也不想在公共代码中遇到一辈子都用这些写法的同事。