当前位置: 首页 > 科技观察

让人想骂人的Python炫耀操作:条件语句的七种写法

时间:2023-03-19 22:31:50 科技观察

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