这里主要介绍一些变量的命名规则以及推荐的注意事项。其中,对于关键字和内置函数的区分需要做到格外的小心。更具体的情况请点击该章节最后的文章链接。
这里主要介绍字符串的一些常规操作,还举了几个例子来验证。开始引入到一定的方法来处理字符串。更具体的情况请点击该章节最后的文章链接。
这里主要介绍数字 —— 整型与浮点型。在使用数字的过程中,我们还需要注意数字与字符串之间的关系,并不是所有的场景都适用数字。更具体的情况请点击该章节最后的文章链接。
注释的功能主要是为我们的程序提供备注信息,方便他人与自己的阅读和维护。在 Python 中会使用字符 ”#“ 来实现注释的功能。
详情请看文章链接:《Python 编程从入门到实践》———— 变量&字符串&数字
列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9;也可以将其他元素加入列表中,其中的元素之间可以没有任何关系。在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。列表是有序集合,因此要访问列表的任何元素,需将该元素的位置或索引的信息传输给程序。要访问列表元素,先确定指出列表的名称,再确定元素的索引,并将其放在方括号内。这里还需要注意另外一个事项就是:**程序的索引一般是从0开始,而不是从1开始。**上面提到的列表,是一个动态的列表。也就意味着,我们可以对列表的元素进行增加、删除、修改等操作。
元素的修改,跟元素访问一样,需要先明确修改元素的位置,即先确定列表和在列表中的位置。这里可以通过直接赋值的方式将新元素修改到原来准备修改元素的位置。而其他的元素是不会受到影响的。
元素的增加,整体来说分为两类情况,一类是将元素增加到列表的末尾;另一类是将元素增加到列表中指定的位置。这里可以分别介绍两种类型的实现方法。
元素的删除,整体来说分为三类情况:第一类是知道删除元素的位置且不在使用,第二类是知道删除的元素的位置但会使用到该元素;第三类是只知道删除元素的值。
详情请看文章链接:《Python 编程从入门到实践》———— 列表建立
其实,如何遍历列表在python中是很容易实现的。我们可以通过 for 循环来实现的操作。Python语言中是根据缩进来判断代码行与前一个代码行的关系。并没有 C 语言中的字符 “;”来区分语句之间的关系。列表中的元素可以是字符串、字符、数字等元素,对于由纯数字组成的列表是属于数值列表。在数据可视化中,处理的几乎都是由数字(如温度、距离、人口数量、经度和纬度等)组成的集合。列表也非常适合用于存储数字集合,同时Python提供了很多工具,可帮助你高效地处理数字列表。上篇文章介绍的是如何访问列表的单个元素,其实我们还可以处理列表的部分元素 —— Python 称之为切片。要创建切片,可指定要使用的第一个元素和最后一个元素的索引。列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理变化的元素来说至关重要。然而,有时候你需要创建一系列不可修改的元素,元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。 元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
详情请看文章链接:《Python 编程从入门到实践》———— 列表操作
每条 if 语句的核心都是一个值为 True 或 False 的判断表达式,这种表达式被称为条件测试。Python 根据条件测试的值为True 还是 False 来决定是否执行 if 语句中的代码。如果条件测试的值为 True,Python 就执行紧跟在 if 语句后面的代码;如果为False,Python就忽略 if 语句的后续代码。
详情请看文章链接:《Python 编程从入门到实践》———— 条件测试
if 语句有很多种,选择使用哪种取决于要测试的条件数。可以划分为四大类: 简单的 if 语句;if - else 语句; if - elif - else 语句; 多个 elif 语句。这四大类使用的场景不尽相同,下面就逐一开始介绍。
最简单的if语句只有一个测试和一个操作:先进行条件判断,之后执行代码块操作。对于条件判断为 False 时,程序不做任何的处理。
if - else 语句使用场景经常需要在条件测试通过了时执行一个操作,并在没有通过时执行另一个操作;在这种情况下,可使用 Python 提供的 if-else 语句。if-else 语句块类似于简单的 if 语句,但其中的 else 语句让你能够指定条件测试未通过时要执行的操作。
if - elif - else 语句。经常需要检查两个的情形,为此可使用 Python 提供的 if-elif-else 结构。Python 只执行 if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。
多个 elif 代码块。可根据需要使用任意数量的 elif 代码块。在整个 if 语句中,条件判断并没有定义我们最多有多少个条件。所以,对于多条件的判断,我们可以使用多个 elif 代码块来实现一系列的操作
详情请看文章链接:《Python 编程从入门到实践》———— if 语句
字典是一系列键—值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何 Python 对象用作字典中的值。在 Python 中,字典用放在花括号 {} 中的一系列键—值对表示。键—值对是两个相关联的值。指定键时,Python 将返回与之相关联的值。键和值之间用冒号分隔,而键—值对之间用逗号分隔。
详情请看文章链接:《Python 编程从入门到实践》———— 字典
一个Python字典可能只包含几个键—值对,也可能包含数百万个键—值对。鉴于字典可能包含大量的数据,Python支持对字典遍历。字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键—值对、键或值。
详情请看文章链接:《Python 编程从入门到实践》———— 字典遍历
有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。这里需要注意的是,前面的文章提到列表是不能作为字典中的键,但是可以作为字典中的值。
详情请看文章链接:《Python 编程从入门到实践》———— 字典嵌套
函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便使用。函数input()接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做。但是Sublime Text不能运行提示用户输入的程序。你可以使用Sublime Text来编写提示用户输入的程序,但必须从终端运行它们。input() 函数的默认的标准输入是键盘。
详情请看文章链接:《Python 编程从入门到实践》———— 用户输入和输出
for 循环用于针对集合中的每个元素都一个代码块,而while循环不断地运行,直到指定的条件不满足为止。要避免编写无限循环,务必对每个while循环进行测试,确保它按预期那样结束。如果你希望程序在用户输入特定值时结束,可运行程序并输入这样的值;如果在这种情况下程序没有结束,请检查程序处理这个值的方式,确认程序至少有一个这样的地方能让循环条件为 False 或让 break 语句得以执行。要在遍历列表的同时对其进行修改,可使用 while 循环。通过将 while 循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。
详情请看文章链接:《Python 编程从入门到实践》———— while循环
鉴于函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。
调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。
关键字实参是传递给函数的名称—值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。
编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。
详情请看文章链接:《Python 编程从入门到实践》———— 实参传递
函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。在函数中,可使用return语句将值返回到调用函数的代码行。返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。调用返回值的函数时,需要提供一个变量,用于存储返回的值。有时候,需要让实参变成可选的,这样使用函数的人就只需在必要时才提供额外的信息。可使用默认值来让实参变成可选的。只有同时提供函数中定义好的多个参数,函数才能正确地运行。这里可以这么理解:在函数定义的时候,我们可以将定义好部分形参的默认值。在函数处理的过程中,如果没有实参传递给形参,那函数将调用形参中的默认值。 从而利用这个默认值进行一下操作,来实现实参可选的目标。;函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。
详情请看文章链接:《Python 编程从入门到实践》———— 函数返回值
向函数传递列表很有用,这种列表包含的可能是名字、数字或更复杂的对象(如字典)。将列表传递给函数后,函数就能直接访问其内容。这就为我们使用函数来提高处理列表的效率提供了可能。将列表传递给函数后,函数就可对其进行修改。在函数中对这个列表所做的任何修改都是永久性的,这让你能够高效地处理大量的数据。编写函数时,你可以以各种方式混合使用位置实参、关键字实参和任意数量的实参。知道这些实参类型大有裨益,因为阅读别人编写的代码时经常会见到它们。
详情请看文章链接:《Python 编程从入门到实践》———— 传递列表
函数的优点之一是,使用它们可将代码块与主程序分离。通过给函数指定描述性名称,可让主程序容易理解得多。你还可以更进一步,将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。import语句允许在当前运行的程序文件中使用模块中的代码。通过将函数存储在独立的文件中,可隐藏程序代码的细节,将重点放在程序的高层逻辑上。这还能让你在众多不同的程序中重用函数。将函数存储在独立文件中后,可与其他程序员共享这些文件而不是整个程序。知道如何导入函数还能让你使用其他程序员编写的函数库
详情请看文章链接:《Python 编程从入门到实践》———— 函数存储
和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制。Python 中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。对象可以包含任意数量和类型的数据。面向对象技术中有十个需要注意的内容:
编写类时,并非总是要从空白开始。如果你要编写的类是另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。
创建子类的实例时,Python 首先需要完成的任务是给父类的所有属性赋值。为此,子类的方法__init__()需要父类施以援手。创建子类时,父类必须包含在当前文件中,且位于子类前面。例如:我们定义了子类 ElectricCar。定义子类时,必须在括号内指定父类的名称。方法__init__()接受创建 Car 实例所需的信息。super() 是一个特殊函数,帮助 Python 将父类和子类关联起来。这行代码让 Python 调用 ElectricCar 的父类的方法__init__(),让 ElectricCar 实例包含父类的所有属性。父类也称为超类(superclass),名称super因此而得名。
详情请看文章链接:《Python 编程从入门到实践》———— 继承
随着你不断地给类添加功能,文件可能变得很长,即便你妥善地使用了继承亦如此。为遵循 Python 的总体理念,应让文件尽可能整洁。为在这方面提供帮助,Python 允许你将类存储在模块中,然后在主程序中导入所需的模块。导入类是一种有效的编程方式。如果在这个程序中包含了整个类的代码,阅读的难度将更高。通过将这个类移到一个模块中,并导入该模块,你依然可以使用其所有功能,但主程序文件变得整洁而易于阅读了。这还能让你将大部分逻辑存储在独立的文件中;确定类像你希望的那样工作后,你就可以不管这些文件,而专注于主程序逻辑。
详情请看文章链接:《Python 编程从入门到实践》———— 导入类
Python 库是一组模块,安装的 Python 都可以包含它。你现在对类的工作原理已有大致的了解,可以开始使用其他程序员编写好的模块了。可使用标准库中的任何函数和类,为此只需在程序开头包含一条简单的import语句。这里先给大家统计一下标准库,对于常用的库,我后续会出一个系列来介绍。第三方库的数量过大,这里也不做总结和展示。对于常用的第三方库,后续也会更新一个系列。
详情请看文章链接:《Python 编程从入门到实践》———— 标准库
Python 编程时,经常会看到一些报错信息。Python 有两种错误很容易辨认:语法错误和异常。Python 使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让 Python 不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个 traceback,其中包含有关异常的报告。异常是使用 try-except 代码块处理的。try-except 代码块让 Python 执行指定的操作,同时告诉 Python 发生异常时怎么办。使用了 try-except 代码块时,即便出现异常,程序也将继续运行。
详情请看文章链接:《Python 编程从入门到实践》———— 错误与异常
编写函数或类时,还可为其编写测试。通过测试,可确定代码面对各种输入都能够按要求的那样工作。测试让你信心满满,深信即便有更多的人使用你的程序,它也能正确地工作。在程序中添加新代码时,你也可以对其进行测试,确认它们不会破坏程序既有的行为。程序员都会犯错,因此每个程序员都必须经常测试其代码,在用户发现问题前找出它们。
Python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。良好的测试用例考虑到了函数可能收到的各种输入,包含针对所有这些情形的测试。全覆盖式测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式。对于大型项目,要实现全覆盖可能很难。通常,最初只要针对代码的重要行为编写测试即可,等项目被广泛使用时再考虑全覆盖。
详情请看文章链接:《Python 编程从入门到实践》———— 测试代码