Python核心编程学习笔记(四)

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

        打开文件:handle = open(file_name, access_mode = 'r')

        access_mode中,'r'表示读取,'w'表示写入,'a'表示添加,'+'表示读写,'b'表示二进制访问。如果未提供access_mode,默认值为'r'。

        以下代码提示用户输入文件名,然后打开一个文件,并显示它的内容到屏幕上:

filename = raw_input('Enter file name: ')
fobj = open(filename, 'r')
for eachLine in fobj:
    print eachLine,#使用逗号来抑制自动生成的换行符,否则文本在显示时会有额外的空行产生
fobj.close()

 

        file()的功能等同于open()。

 

        17、错误和异常

        将代码封装在try-except语句中可以添加错误检测和异常处理。try之后的代码组,就是打算管理的代码。except之后的代码组,是处理错误的代码。

try:
    filename = raw_input('Enter file name: ')
    fobj = file(filename, 'r')
    for eachLine in fobj:
         print eachLine,
    fobj.close()
except IOError, e:
    print 'file open error:', e


        18、函数

        Python中的函数使用小括号(( ))调用。函数在调用之前必须先定义。如果函数中没有return语句,就会自动返回None对象。

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

        (1)函数定义:

def function_name([arguments]):
    "option documentation string" 
	function_suite

 

        例如:

def addMe2Me(x):
    'apply + operation to argument'
    return (x + x)


        (2)函数调用:

>>> addMe2Me(4.25)
8.5
>>> addMe2Me(10)
20
>>> addMe2Me('Python')
'PythonPython'
>>> addMe2Me([-1, 'abc'])
[-1, 'abc', -1, 'abc']


        (3)默认参数:

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

>>> def foo(debug=True):
	'determin of in debug mode with default argument'
	if debug:
		print 'in debug mode'
	print 'done'

	
>>> foo()
in debug mode
done
>>> foo(False)
done


        19、类

        (1)类的定义:

class ClassName(base_class[es]):#可选的父类(或基类),如果没有合适的基类,就使用object作为基类
    "optional documention string"#可选的文档字符串
	static_member_declarations#静态成员定义
	method_declarations#方法定义

 

class FooClass(object):
    """my very first class: FooClass"""
	version = 0.1    #class (data) attribute
	
	def __init__(self, nm='John Doe'):
	    """constructor"""
		self.name = nm    #class instance (data) attribute
		print 'Created a class instance for', nm
		
	def showname(self):
	    """display instance attribute and class name"""
		print 'Your name is', self.name
		print 'My name is', self.__class__.__name__
		
	def showver(self):
	    """display class (static) attribute"""
		print self.version    #references FooClass.version
		
	def addMe2Me(self, x):    #does not use 'self'
	    """apply + operation to argument"""
		return x + x


        当一个实例被创建时,__init__() 方法会自动执行,在类的实例创建完毕后执行,类似构造函数,但是,它仅仅是你的对象创建后执行的第一个方法,它的目的是执行一些该对象的必要的初始化工作。创建自己的__init__() 方法覆盖默认的__init__()方法(默认的方法什么也不做),从而修饰刚创建的对象。

        以上每个方法都有一个参数--self,什么是self?它是类实例自身的引用,类似于其他语言中的this标识符。

 

        (2)创建类实例

>>> fool = FooClass()
Created a class instance for John Doe

 

        方法调用:

>>> fool.showname()
Your name is John Doe
My name is FooClass
>>> fool.showver()
0.1
>>> print fool.addMe2Me(5)
10
>>> print fool.addMe2Me('xyz')
xyzxyz

 

        在以上创建实例时并未传递名字参数,因此默认参数'John Doe' 就被自动使用。下面指定一个参数:

>>> foo2 = FooClass('Jane Smith')
Created a class instance for Jane Smith
>>> foo2.showname()
Your name is Jane Smith
My name is FooClass

 


        20、模块

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

        创建了一个Python源文件之后,模块的名字就是不带 .py 后缀的文件名。

 

        (1)导入模块

        import module_name

 

        (2)访问模块函数或者模块变量

        导入之后,模块的属性(函数和变量)可以通过 .(句点)属性标识法访问。

        module.function()

        module.varible

>>> import sys
>>> sys.stdout.write('Hello World!\n')    #调用标准输出write()方法,它不会自动在字符串后面添加换行符号
Hello World!
>>> sys.platform
'win32'
>>> sys.version
'2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)]'


         21、实用的函数

           

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对象)

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值