Python基础2本节目录Python语言数据类型、运算符和表达式Python的数据结构Python的流程控制Python函数Python模块Python的输入、输出异常处理3—Python语言数据类型、运算符和表达式Python基础4Python语法基础文件类型Python程序基本概念Python运算符和表达式文件类型在交互模式下,想输入多少Python命令,就输入多少;每个命令在输入回车后都立即运行。只要不重新开启新的解释器,我们都在同一个会话中运行,因此,前面定义的变量,后面的语句都可以使用。一旦关闭解释器,会话中的所有变量和敲入的语句将不复存在。5文件类型为了能够永久保存程序,并且能够被重复执行,我们必须要将代码保存在文件中,因此,就需要用编辑器来进行代码的编写,和其他编程语言一样,不同的Python的源代码可以直接执行而不需要像编译型语言一样编译成二进制代码。Python源代码文件就是普通的文本文件,只要是能编辑文本文件的编辑器都可以用来编写Python程序,如notepad/word等。67文件类型Python的文件类型分为三种:源代码、字节代码、优化代码。源代码Python源代码文件,即py脚本文件,由python.exe解释,可在控制台下运行。pyw脚本文件是图形用户接口(Graphicaluserinterface)的源文件,专门用来开发图形界面,由pythonw.exe解释运行。8文件类型字节代码Python源文件经过编译后生成的pyc文件,即字节文件。它与平台无关,所以可以移植到其他系统上。下面这段脚本可以把example.py编译为example.pyc#compilepytopycimportpy_compilepy_compile.compile('example.py')运行此脚本即可得到example.pyc文件类型不能在python的交互界面中运行。只能够在DOS屏幕上运行:pythonexample.pyc在程序中调用可以用:os.system(pythonexample.pyc)优化代码经过优化的源文件生成扩展名为pyo的文件,即优化文件。下面步骤可以把example.py编译为example.pyo启动命令行窗口,进入example.py所在目录:D:cdD:\path\examples9文件类型在命令行中输入python-O-mpy_compileexample.py参数-O表示生成优化代码参数-m表示导入的py_compile模块作为脚本运行。编译example.pyo需要调用py_compile模块中的compile()方法参数example.py是待编译的文件名。能够在DOS屏幕上运行:pythonexample.pyo10文件类型当程序比较大的时候,可以将程序划分成多个模块编写,每个模块用一个文件保存。模块之间可以通过导入互相调用(import)。模块也可以导入库中的其他模块。Python是以模块进行重用的,模块中可以包括类、函数、变量等。11编码风格以“#”号开头的内容为注释,python解释器会忽略该行内容。在Python中是以缩进(indent)来区分程序功能块的,缩进的长度不受限制,但就一个功能块来讲,最好保持一致的缩进量。可以使用空格、Tab键等,但是最好保持一致如果一行中有多条语句,语句间要以分号(;)分隔。12Python程序基本概念常量一个字面意义上的常量的例子是如同5、1.23、9.25e-3这样的数,或者如同‘Thisisastring’、“It‘sastring!”这样的字符串。它们被称作字面意义上的,因为它们具备字面的意义——按照它们的字面意义使用它们的值。数2总是代表它自己,而不会是别的什么东西——它是一个常量,因为不能改变它的值。因此,所有这些都被称为字面意义上的常量。13Python程序基本概念数在Python中有4种类型的数——整数、长整数、浮点数和复数。2是一个整数的例子。长整数不过是大一些的整数。3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3*10-4。(-5+4j)和(2.3-4.6j)是复数的例子14Python程序基本概念字符串字符串是字符的序列。C语言中用字符数组表示,如charstr[20]=“hello”.Python中的字符串可以如下表示:使用单引号(‘):可以用单引号指示字符串,就如同‘Helloworld‘这样。所有的空白,即空格和制表符都照原样保留。使用双引号(“):在双引号中的字符串与单引号中的字符串的使用完全相同,例如”What‘syourname?“。15Python程序基本概念使用三引号(‘’‘或“”“):利用三引号,可以指示一个多行的字符串,可以在三引号中自由的使用单引号和双引号,如:16'''这是一个多行的字符串,你可以写入任意字符,甚至是单引号'和双引号'''Python程序基本概念转义符假设想要在一个字符串中包含一个单引号(‘),那么该怎么指示这个字符串?例如,这个字符串是What’syourname?。肯定不能用‘What’syourname?‘来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,需要指明单引号而不是字符串的结尾。可以通过转义符来完成这个任务。用\’来指示单引号——注意这个反斜杠。现在可以把字符串表示为‘What\’syourname?‘。17Python程序基本概念18另一个表示这个特别的字符串的方法是“What‘syourname?”,即用双引号。类似地,要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。另外,可以用转义符\\来指示反斜杠本身。值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行.Thisisthefirstsentence.\Thisisthesecondsentence.Thisisthefirstsentence.Thisisthesecondsentence.Python程序基本概念19自然字符串如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定。例如rNewlinesareindicatedby\n“比较下面两句话的区别:printNewlinesareindicatedby\nhelloprintrNewlinesareindicatedby\nhelloPython程序基本概念20Unicode字符串Unicode是书写国际文本的标准方法。如果想要用中文、日文、韩文等写文本,那么需要有一个支持Unicode的编辑器。类似地,Python允许处理Unicode文本——只需要在字符串前加上前缀u或U。例如,uThisisaUnicodestring.。在处理文本文件的时候尽量使用Unicode编码,特别是文件中含有用非英语的语言写的文本。Python程序基本概念21字符串是不可变的这意味着一旦创造了一个字符串,就不能再改变它了。虽然这看起来像是一件坏事,但实际上它不是。我们将会在后面的程序中看到为什么说它不是一个缺点。级连字符串如果把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,'What\'s''yourname?'会被自动转为What'syourname?'What\'s''yourname?'What'syourname?What\'s+yourname?Python程序基本概念变量仅仅使用字面意义上的常量很快就会不能满足我们的需求——我们需要一种既可以储存信息又可以对它们进行操作(改变它的内容)的方法。这是为什么要引入变量。变量的值可以变化,即可以使用变量存储任何东西。变量只是计算机中存储信息的一部分内存。与字面意义上的常量不同,需要一些能够访问这些变量的方法,因此要给变量命名。22Python程序基本概念标识符的命名变量是标识符的例子。标识符是用来标识某样东西的名字。在命名标识符的时候,要遵循这些规则:标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘_’)。标识符名称的其他部分可以由字母(大写或小写)、下划线(‘_’)或数字(0-9)组成。23Python程序基本概念标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。注意前者中的小写n和后者中的大写N。有效标识符名称的例子有i、__my_name、name_23和a1b2_c3。无效标识符名称的例子有2things、thisisspacedout和my-name。24Python程序基本概念标识符的命名-关键字25anddelfromnotwhileaselifglobalorwithassertelseifpassyieldbreakexceptimportprintclassexecinraisecontinuefinallyisreturndefforlambdatryPython程序基本概念标识符的命名-类保留_*:frommoduleimport*将不被导出。交互环境最后表达式的值。__*__:系统定义的名字__*:类的私有变量或方法26Python程序基本概念数据类型每个变量都有自己的类型,可以处理不同类型的值,称为数据类型。基本的类型是数和字符串,我们已经讨论过它们了。在后面的章节里面,我们会研究怎么用类创造我们自己的类型。Python中一切都是对象,包括字符串和数。27Python程序基本概念对象Python把在程序中用到的任何东西都称为对象。Python是完全面向对象的语言,任何变量都是对象,甚至包括执行的代码:函数。28#Filename:var.pyi=5printii=i+1printis='''Thisisamulti-linestring.Thisisthesecondline.'''printsPython程序基本概念逻辑行与物理行物理行是在编写程序时所看见的。逻辑行是Python看见的单个语句。Python假定每个物理行对应一个逻辑行Python希望每行都只使用一个语句,这样使得代码更加易读如果想要在一个物理行中使用多于一个逻辑行,那么需要使用分号(;)来特别地标明这种用法。分号表示一个逻辑行/语句的结束。例如:29i=5printii=5;printi;i=5;printiPython程序基本概念强烈建议坚持在每个物理行只写一句逻辑行。仅仅当逻辑行太长的时候,在多于一个物理行写一个逻辑行。这些都是为了尽可能避免使用分号,从而让代码更加易读。下面是一个在多个物理行中写一个逻辑行的例子。它被称为明确的行连接。30s='Thisisastring.\Thiscontinuesthestring.'printsThisisastring.Thiscontinuesthestring.Python程序基本概念有一种暗示的假设,可以不需要使用反斜杠。这种情况出现在逻辑行中使用了圆括号、方括号或波形括号的时候。这被称为暗示的行连接.。31a=[100,200]printaPython程序基本概念缩进空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。错误的缩进会引发错误不同于C/C++、Java用的是{}32i=5print'Valueis',i#Error!Noticeasinglespaceatthestartofthelineprint'Irepeat,thevalueis',iPython程序基本概念如何缩进不要混合使用制表符和空格来缩进,因为这在跨越不同的平