Python3基础篇(十)——异常处理
Python3基础篇(十)——异常处理前言:阅读这篇文章我能学到什么? 这篇文章将为你介绍Python3中的异常捕获和处理,如果你看过《代码大全2》会明白为程序设计上异常的处理是多么重要的一件事。如果你希望对它有一些基础的了解,那么请读这篇文章。 1 程序异常处理 程序异常就是程序的运行结果超出了设计者的预料,程序的运行是“非正常”的执行流程。程序的异常处理其实应该分两个阶段,第一个阶段是异常的检测(识别出异常状态,并区分出是何种异常),第二个阶段是针对特定异常情况应该做何种处理(处理可以是忽略、修正、甚至重启)。变成语言支持异常处理已经不是什么“新鲜”的事了,但还是要提一下早期程序处理异常是用 error code 的方式,即函数或代码段返回故障码,通过故障码来区分异常种类和决定如何处理。这种方式已经日渐淘汰,现在很多编程语言已经对异常处理有了较好的支持,形式通常是 try-catch ,在Python3中是 try-except形式。断言是一种常用的异常处理,它一般用于调试阶段(发行版一般将其关闭)。 1.1...
Python3基础篇(九)——命名空间和作用域
Python3基础篇(九)——命名空间和作用域前言阅读这篇文章我能学到什么? 这篇文章将使你弄明白Python3的命名空间和作用域到底意味着什么。 1 命名空间 命名空间的主要作用是为了防止命名冲突。各个命名空间是独立的,不同命名空间可以具有相同的命名,但同一个命名空间内不得重名(即使变量和函数之间也不能重名)。 1.1 命名空间分类 Python3有三类命名空间: 内置命名空间:Python3的内置名称(关键字、内置变量名、内置函数名)。 全局命名空间:在函数外及类外定义。 局部命名空间:在函数或类中定义的。 1.2 命名空间的查找顺序 当访问一个变量或函数时,python根据名称在命名空间中进行查找,但是几种命名空间查找顺序不同。查找顺序优先级为: 局部命名空间>全局命名空间>内置命名空间 。 这也就能理解当函数内局部变量和外部代码示例: 12345678910111213Parameter1 = 1Parameter2 = 2def...
Python3基础篇(八)——面向对象
Python3基础篇(八)——面向对象前言阅读这篇文章我能学到什么? 这篇文章将为你详细介绍Python3中的面向对象程序设计,你将学会如何定义一个类和使用一个对象。 Python3是一门面向对象的语言,掌握好面向对象的程序设计是用好Python3的前提。如果你理解c++的“万物皆对象”概念那学习起来就轻松很多了。 面向对象是一个抽象的程序设计概念,是软件开发的方法。起初它来自于程序设计,而如今面向对象概念已经扩展到数据库系统、交互结构、应用结构、应用平台、分布式系统、网络管理结构、CAD计数、人工智能等领域。这种思想就像种子一样已经到处传播并发芽生长。 对象编程将任何事物(可以是客观存在或抽象的,客观的比如桌子板凳,抽象的比如时间和爱情)都看做具有 属性 和 方法 的对象,又从同一类事物中抽象出他们的 共性 (比如人类共有的属性是年龄和体重,共有的方法是学习和吃饭)形成类。这就是 面向对象...
Python3基础篇(七)——函数
Python3基础篇(七)——函数前言:阅读这篇文章我能学到什么? 这篇文章将为你详细介绍Python3函数的用法,将会非常详细。 程序的函数概念就类似数学上的函数概念。按照一定语法结构能完成特定的功能的代码段,函数可以具有输入和输出(严格来说函数必须具有输出,没有任何输出的函数是没有意义的,只是语法结构上满足函数定义)。 1 定义函数 Python3以def关键字表示定义函数,随后自定义一个函数名,需要注意函数名在作用域内不能同名(后面补一章讲下Python3的作用域吧,这里不懂先不必纠结)。函数名之后()内为参数列表,参数列表可以为空,它表示传入函数的参数。最后不要忘了:符号。另起一行的是可选的“函数说明字符串”,用于对函数简要描述,可省略不写。函数体必须比函数名至少缩进一个空格或table。与c/c++类似,函数可以搭配return关键词结束函数并返回一个值给调用方,当函数不需要返回值时可以返回None,也可以省略None,甚至可以省略return。语法结构: 123def...
Python3基础篇(六)——迭代器与生成器
Python3基础篇(六)——迭代器与生成器,生成式前言:阅读这篇文章我能学到什么? 这篇文章将为你介绍Python3的迭代器和生成器以及列表生成式的详细用法。 1 迭代器 在Python3中可以为序列创建迭代器。迭代器是一个用于记录在序列中当前遍历位置的结构,持续访问它将能依次访问序列的所有元素。它从序列的第一个元素开始访问,直到访问完所有元素。迭代器只能前进不能后退,也即访问过的元素不能再次访问。常用的方法有iter()用于创建迭代器,next()函数返回当前元素并指向下一个元素。代码示例: 123456789101112131415161718192021222324252627282930313233Tuple = (1, 2, 3)Iterator1 = iter(Tuple)print(next(Iterator1))print(next(Iterator1))print(next(Iterator1))print("-------------------------")List = [1, 2,...
Python3基础篇(五)——循环控制
Python3基础篇(五)——循环控制前言:阅读这篇文章我能学到什么? 这篇文章将为你介绍Python3的循环控制用法。在Python3里循环控制有for和while两种。 1 while循环控制1.1 while结构语法结构: 12while <condition>: <codeblock> 循环开始前先判断是否满足<condition>条件,即条件表达式结果为布尔真,如果满足则执行<codeblock>,执行完后继续再判断是否满足<condition>,继续满足就继续执行<codeblock>直到条件不满足时循环结束,程序往后运行。<codeblock>代码块必须必while至少有一个空格或Table的缩进。流程图: 12345678910flowchatStart=>start: 开始End=>end: 结束Condition=>condition:...
Python3基础篇(四)——条件控制
Python3基础篇(四)——条件控制前言:阅读这篇文章我能学到什么? 这篇文章将带你学习Python3中的条件控制结构。if条件结构似乎已成各类程序语言的标配,如果你有其他语言的基础学习起来将会非常简单。 1 if结构语法结构: 12if <Expression>: <CodedBlock> <Expression>表示表达式,其结果转化成布尔型决定if分支的执行。<CodeBlock>是if内的代码块,只有当if的条件表达式<Expression>为真时代码块才会被执行。python是以缩进来表示代码块的,<CodeBlock>代码块必须比if至少有一个空格的缩进。另外,<CodeBlock>代码块可以由多个语句构成。不要忘记:号。流程图: 12345678910flowchatStart=>start: 开始End=>end: 结束Operation=>operation:...
TeamViewer试用到期修改MAC地址(解决找不到“网络地址”选项的问题)
TeamViewer试用到期修改MAC地址(解决找不到“网络地址”选项的问题)前言: 如果你在试用TeamViewer一段时间后遇到了弹窗提示适用到期,或者提示你需要远程的两台电脑之间被判为商业用途,那么就请阅读这篇文章,它将教会你无限次延长TeamViewer的试用期的方法。如果有经济条件,还是建议购买正版许可证。 ——如果您觉得这是一篇不错的博文,希望您能给一个小小的赞,感谢您的支持。 1 问题描述状况 使用TeamViewer我遇到了如下问题,请帮助我解决: 按照下面的步骤操作将使得这个问题被解决。 2...
Python3基础篇(三)——运算符
Python3基础篇(三)——运算符前言:阅读这篇文章我能学到什么? 这篇文章将为你介绍Python3运算符的使用。 1 Python3运算符 同其他语言一样,Python3也具有多种运算符。Python3的7类运算符如下: 运算符类别 运算符 算术运算符 +、-、*、/、%、**、// 关系运算符 ==、!=、>、<、>=、<= 赋值运算符 =、+=、-=、*=、/=、%=、**=、//=、:= 位运算符 &、|、^、~、<<、>> 逻辑运算符 and、or、not 成员运算符 in、not in 身份运算符 is、is not 2...
Python3基础篇(二)——数据类型
Python3基础篇(二)——数据类型前言:阅读这篇文章我能学到什么? 这篇文章将为你介绍Python3的几种数据类型以及对这些数据类型的简单操作。 1 Python3变量的一般特征 与大多数脚本类似,Python3中变量的不需要单独定义,首次赋值即定义。由于赋值即完成定义的特征,在变量使用前都必须赋值(即使用前必须定义)。 对于Python3来说变量是不分类型的,我们讨论的皆为数据的类型,也即存储在变量内存当中的对象数据的类型。(所以标题叫数据类型而不是变量类型)与其他语言类似,我们使用=作为赋值操作符,将右侧表达式的值赋值给左侧变量,这个过程即完成了变量在内存空间的创建,也完成了表达式值的计算和存储。 12a = 1 + 1 #创建变量a,计算右侧表达式值并赋值给变量ab = a #变量之间赋值 对变量赋值操作。 1234a = 100 #a中存储整形数据a = 0.0001 ...