14、列表解析


        你可以在一行中使用一个for循环将所有值放到一个列表当中:



 

利用Python绘制水下地形_默认值


        列表解析甚至可以做更复杂的事情,比如挑选出符合要求的值放入列表:


利用Python绘制水下地形_python_02


 


15、文件和内建函数open()、file()


        文件访问是一门语言必备的功能,下面学习一下文件的操作。


        如何打开文件


handle = open(filename, access_mode = 'r')

        filename变量包含我们希望打开文件的字符串名字,access_mode中的'r'表示读取,'w'表示写入,'a'表示添加。其它可能用到的标识还有'+'读写,‘b'表示二进制访问。默认是'r'。如果open()成功,一个文件对象句柄会被返回。所有的后续的文件操作都必须是通过此文件句柄进行。当一个文件对象返回之后,我们可以访问一些方法,如:readlines()和close()


利用Python绘制水下地形_字符串_03


        上面的例子,我们是一次读入文件的所有行,然后关闭文件,适用于文件大小适中的文件,对于很大的文件来说会占用太多的内存,这是最好一次读一行。


        file()内建函数是最近添加到python中的,功能等同于open(),不过file()更确切的表明它是一个工厂函数,(生成文件对象)类似int()生成整数对象,dict()生成字典对象。


 


16、错误和异常


        python允许程序在运行时检测错误,当检测到一个错误,python解释器就会引发一个异常,并显示异常的详细信息。在代码中添加错误检测及异常处理,只要将他们封装在try-except语句当中。try之后的代码组,是打算管理的代码,except之后的代码组是处理错误的代码。


利用Python绘制水下地形_python_04


17、函数


引用调用的,意味着函数内对参数的改变会影响到原始对象。不过事实上只有可变对象会受此影响,对于不可变对象来说,是 按值调用。


        如何定义函数?


def function_name([arguments]): 
 
  

               "optional documentation string" 
 
  

               function_suite

        定义一个函数的语法由def关键字及紧随其后的函数名再加上该函数需要的几个参数组。函数参数是可选的,这也是为什么把它们放到中括号中的原因。这个语句由一个冒号(:)结束(与if和while语句的结束方式一样),之后是代表函数体的代码组。如下例:


利用Python绘制水下地形_默认值_05


        python语言中调用函数与其它高级语言一样,函数名加上函数运算符,一对小括号。注:+运算符几乎与所有数据类型工作。换句话说,几乎所有的标准数据类型都支持+运算符,不管是非数值相加还是序列合并。


        函数的参数可以有一个默认值,如果提供有默认值,在函数定义中,参数以赋值语句的形式提供,事实上这仅仅是提供默认参数的语法,它表示函数调用时如果没有提供这个参数,它就取这个值作为默认值。如下例:


利用Python绘制水下地形_python_06


        上面的例子中,debug参数有一个默认值True,如果没有传递参数,则debug为默认值True,第二次调用的时候传递一个False,则默认值无效。


 


18、类


        类是面向对象编程的核心,它扮演相关数据及逻辑的容器角色。它们提供了创建“真是”对象的蓝图。因为python并不强求你以面向对象方式编程(与Java不同),此刻你也可以不学习类。


        如何定义类?


        class ClassName(base_class[es]):


            'optional docmentation string'


            static member declarations


            method_declarations


        使用class关键字定义类,可以提供一个可选的父类或者说是基类;如果没有合适的基类,那就使用object作为基类。class行之后是可选的文档字符串,静态成员定义,及方法定义。


 


19、模块


        模块是一种组织形式,它将彼此有关系的python代码组织到一个个独立的文件当中。模块可以包含可执行代码,函数和类这些东西可以组合。


        当你创建了一个python源文件,模块的名字就是不带.py后缀的文件名,一个模块创建之后,可以从另一个模块中使用import语句导入这个模块来使用。


        如何导入模块?


            import module_name


         如何访问一个模块函数或访问一个模块变量?


            module.function()


            module.variable


        如下例子,导入sys包,使用其方法及模块变量:


利用Python绘制水下地形_默认值_07


        这里的代码的输出与print类似,唯一的区别就是这次调用的是标准输出的write()方法,而且这次需要显式的在字符串中提供换行字符,不同于print语句,write()不会自动在字符串后面添加换行符号。


 


20、实用函数


        对一个新的python程序员来说有用的内建函数如:


        dir([obj])--显示对象属性,如果没有提供参数,则显示全局变量的名字


        help([obj])--以一种整齐美观的形式 显示对象的文档字符串,如果没有提供任何参数,则会进入交互式帮助。


        int(obj)--讲一个对象转换成整数


        len(obj)--返回对象的长度


        open(fn, mode)--以mode('r'=读,'w'=写)方式打开一个文件名为fn的文件


        range([[start,]]stop[,step])--返回一个整数列表,起始值为start,结束值为stop-1;start默认值是0,step默认值是1


        raw_input(str)--等待用户输入一个字符串,可以提供一个可选参数str作为提示信息。


        str(obj)--将一个对象转换成字符串


        type(obj)--返回对象的类型(返回值本社是一个type对象)