每个Python程序员都应该知道的10个

北京中科专注治疗白癜风 http://www.zggylt.com/jkys/jksw/1150.html

转自:小白学视觉

介绍

对于许多刚开始学习代码的人来说,Python已经成为 的选择。它的语法非常直观,并且支持灵活的动态类型。另外,它是一种解释性语言,可以将交互式控制台用于学习。基本上,我们可以仅使用一些命令行工具(例如Mac中的Terminal)来开始Python学习,因为macOS现已随Python一起提供。

学习Python时,我摸会逐渐熟悉它的数据结构,控制流,类,函数和其他基本知识。有趣的是Python中的各种首字母缩写词,我们时常会遇到。本文将回顾十个这样的缩写。其中一些是通用的编程原理,而另一些则更特定于Python编码。然而,它们每个都有其有趣的方面。

1.OOP(面向对象编程)

我们应该知道的 个缩写是OOP—面向对象编程,Python就是基于此进行设计的。我们知道编程本身是关于编码的,但是程序本身应该是关于数据的。我们的程序需要获取输入数据,过程中处理数据, 输出数据。但请注意,此处讨论的数据是最一般意义上的数据,可以包括表格数据,字符串,用户操作(例如,单击按钮),图像以及具有信息的任何形式的数据。我们代码的工作是处理这些各种形式的数据,并以所需的方式呈现它们。

为了完成我们的工作,我们需要能够处理这些数据的代码,而现代编程语言(包括Python)中的一种常见设计模式就是采用OOP范式。这个想法非常直观-我们用特定的对象包装数据。更具体地的说,对象可以保存数据(例如,属性)并且可以操作数据(例如,方法)。例如,如果我们开发一个赛车游戏。我们可以构建汽车对象,每个对象都可以具有特定的属性,例如颜色, 速度和重量。此外,这些对象还可以进行制动和加速等操作。这些数据的逻辑组织以对象(汽车)为中心。

让我们看一下Python中的一个示例。使用内置的str类包装字符串数据,我们可以使用字符串对象传递字符串数据,还可以改变字符串的表示方式。下面是一个简单的示例。

#Createavariableofstrtype...hello="HelloPython!"......#Sendthedatatoafunctioncall...print(hello)......#Manipulatethestringdatawithstringmethods...hello_lower=hello.lower()...hello_upper=hello.upper()...print(lowercased:,hello_lower)...print(uppercased:,hello_upper)...HelloPython!lowercased:hellopython!uppercased:HELLOPYTHON!

2.DRY(Don’tRepeatYourself)

DRY(Don’tRepeatYourself)的原理每个程序员都应该实践。这个想法很简单-如果代码中有重复,则表明我们需要进行一些重构以 地减少重复代码,或者尽可能消除重复。以下伪代码通过代码的重构展示了DRY原理。

defdo_something(item):pass#Repetativeworkdo_something(item0)do_something(item1)do_something(item2)#ApplyDRYforitemin(item0,item1,item3):do_something(item)

代码重构的另一种可能情况是,我们发现自己要处理一堆结构相同的数据。这时我们应该使用自己的类来处理这些数据,而不是使用一系列的字典,列表或元组来存储每个人的数据。这使代码不易出错,而且对后期维护也有好处。

3.PIP(PackageInstallerforPython)

可能是Python受欢迎的最重要因素是其开放源代码性质,这带来了大量免费的Python软件包集合。根据Wikipedia的介绍,在Python软件包索引(PyPI)中索引了,多个软件包。我们可以使用pip工具从PyPI安装任何软件包。该安装过程非常轻松,只需在命令或终端中使用一行代码即可。以下代码段总结了一些常用用法。

#installlatestversionpipinstallpackage_name#installaparticularversionpipinstallpackage_name==version_number#touninstallapackagepipuninstallpackage_name#toshowinstalledpackagespiplist#toshowtheinformationaboutaparticularpackagepipshowpackage_name#toinstallalistofdependencies,suchastocloneavirtualenvironmentpipinstall-rrequirements.txt

4.LEGB(Local,Enclosing,GlobalandBuilt-in)

LEGB规则引用Python中的变量查找顺序,如下图所示。具体来说,当解释程序尝试解析变量时,Python具有四层作用域。首先从局部作用域开始,该作用域可以是函数或类。如果解释器找到了变量的相应绑定值,它将停止查找并将变量与该特定值一起使用。

可变分辨率规则

否则,它将在更高层次上(封闭范围)进行查找。封闭范围仅存在于函数的嵌套结构中。具体来说,当在另一个函数中声明一个函数时,我们将内部函数称为内部函数,将外部函数称为外部函数。当解释器尝试解析内部函数范围内使用的变量时,如果无法在局部范围内解析,它将进入封闭范围,即外部函数的局部范围。

如果仍然无法解析封闭范围内的变量,它将进入全局范围。全局作用域通常是模块级别,通常是独立的Python文件。值得注意的是,当程序包导入到当前文件中时,来自导入的函数和类也将成为全局范围的一部分。内置作用域是在启动解释器时加载的函数,类和其他模块,以使这些最基本的对象始终可用(例如,theprint和其他内置函数)。

5.MRO(MethodResolutionOrder)

TheMethodResolutionOrder表示Python或其他编程语言如何解析方法或属性。与上面讨论的LEGB规则


转载请注明:http://www.xxcyfilter.com/zyjn/zyjn/11967.html