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

Python作秀操作:条件语句的七种写法

时间:2023-03-26 11:34:40 Python

首发于微信公众号:《Python编程时光》有人说Python是一门入门容易精通难的语言。我非常同意这一点。Python语言中有很多(而且越来越多)高级特性是Python爱好者真正喜欢的。在这些人眼里,能写出普通开发者看不懂的高级功能的,就是高手,就是神。但是你要知道,在团队合作中,炫技是大忌。你为什么这么说?说说我的看法:代码越简洁,逻辑越清晰,越不容易出错;在团队合作中,您的代码不仅由您维护,减少其他人阅读/理解代码逻辑的成本是一个好主意。简单的代码只会用到最基本的语法糖,复杂的高级特性会有更多的依赖(比如语言版本)在这个系列中,我会总结列出我见过的那些炫操作,今天来热身一下,以及写一些很简单的条件判断语句,让人想骂回避操作。在这里,如果你是Python爱好者,可以学到一些写超酷的代码编写技巧,但是学就是学,希望你能在不同的场景中使用。原代码是很简单的一段代码,用于通过年龄来判断一个人是否成年。由于代码行数,有些人不愿意这样写,因为这不能体现他们多年的Python功底。ifage>18:return"adult"else:return"minor"下面我列出了这段代码的六种变体,每一种都比另一种多6,单独拿出来更容易理解。用过这些学法方法的人,肯定会一头雾水,理解之后,不经意地喊一句:妈的,你还能这么写?,然后我就开始骂人了:这代码是给人看的吗?(除了第一个)第一个语法:ifelse示例>>>age1=20>>>age2=17>>>>>>>>>msg1="already"Adult"ifage1>18else"Underage">>>printmsg1isanadult>>>>>>msg2="Adult"ifage2>18else"Underage">>>printmsg2isunderage>>>No.两个语法andor例子>>>msg1=age1>18and"adult"or"minor">>>msg2="adult"ifage2>18else"minor">>>>>>print(msg1)isanadult>>>>>>>>>print(msg2)是次要的第三语法(,)[condition]示例>>>msg1=("not"adult","成人")[age1>18]>>>print(msg1)adult>>>>>>>>>msg2=("underage","adult")[age2>18]>>>print(msg2)Minor第四种语法(lambda:,lambda:)[]()示例>>>msg1=(lambda:"Minor",lambda:"Mature")[age1>18]()>>>print(msg1)isanadult>>>>>>msg2=(lambda:"minor",lambda:"adult")[age2>18]()>>>print(msg2)Underage第五个语法:{真:,假:}[<条件>]示例:>>>msg1={真:“成人”,假:“未成年”}[age1>18]>>>print(msg1)成熟>>>>>>msg2={True:"Age",False:"Minor"}[age2>18]>>>print(msg2)Minor第六句语法(()and(,)或(,))[0]示例>>>msg1=((age1>18)and("adult",)or("Underage",))[0]>>>print(msg1)Aged>>>>>>msg2=((age2>18)and("Age",)or("Underage",))[0]>>>print(msg2)minors上面的代码比较简单,大家可以看懂如果你仔细看的话,我就不解释了。好久不见了。.在这六种写法中,第一种是我最推荐的一种,我自己也经常用到。它简单明了,代码行数很少。其他的写法虽然可以写,但是不能用,我也不想在公共代码中遇到一辈子都用这些写法的同事。