![Python一行流:像专家一样写代码](https://wfqqreader-1252317822.image.myqcloud.com/cover/989/41202989/b_41202989.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
关于可读性的说明
《Python之禅》(The Zen of Python)中包含了Python编程语言的19条指导原则。可以通过在Python命令行里输入import this来阅读它:
![](https://epubservercos.yuewen.com/CBE828/21440188101525806/epubprivate/OEBPS/Images/41968_30_1.jpg?sign=1739437720-gDJqq9ra8BaD0VGHaQGXK5v3cc6d4Mhn-0-9ab7bec8dbca446a3f59c9f4063d472f)
如《Python之禅》所言,“可读性很重要(Readability counts)”,单行程序是解决问题的最小化方案,在很多情况下,将一段代码改写为Python单行程序会提升可读性,并使得代码更加Pythonic。例如使用列表解析将创建列表的代码缩短到只有一行。请看下面的例子:
![](https://epubservercos.yuewen.com/CBE828/21440188101525806/epubprivate/OEBPS/Images/41968_30_2.jpg?sign=1739437720-6ktB1uCpRLlMrdlgKX1Wt25c4AzqWEV9-0-7afe611216ddd3e688fb05548fc3726a)
![](https://epubservercos.yuewen.com/CBE828/21440188101525806/epubprivate/OEBPS/Images/41968_31_1.jpg?sign=1739437720-BESq3ZI3C2CN23GEcCctW3Waf6Fkht8R-0-7a7d198656494b0cb3cbee6a81ae1a00)
在这个代码片段中,我们需要五行代码来生成头10个平方数的列表,并把它打印到命令行。但如果使用更佳的单行解决方案,就能以一种更易读和简明的方式做到同样的事情:
![](https://epubservercos.yuewen.com/CBE828/21440188101525806/epubprivate/OEBPS/Images/41968_31_2.jpg?sign=1739437720-6BkTNwGG9sMIPHyMqAiGe9zlwXnbY1EZ-0-918907dcf08ae8adf7d903e94ce1b5ce)
输出是完全一样的,但单行程序是基于更加Pythonic的概念列表解析来构建的,可读性更高,也更简洁。
然而,Python一行流也可能写得难以理解。在有些情况下,编写单行程序的解决方案,并不会让程序更加可读。但是,正如象棋大师会在动棋之前了解所有可能的行动方案,并决定何为最佳,你也需要了解所有可以表达你的想法的编码方式,如此才能从中选择最好的方式。追求最优美的解决方案不是一件低优先级的事情,而是Python生态系统的核心。正如《Python之禅》所教导的:“优美胜于丑陋。”