file('文件名')
这里的文件名可以用文件的完整路径,也可以是相对路径。因为我们把要读取的文件和代码放在了同一个文件夹下,所以只需要写它的文件名就够了。
f = file('data.txt')
但这一步只是打开了一个文件,并没有得到其中的内容。变量f保存了这个文件,还需要去读取它的内容。你可以通过read()函数把文件内所有内容读进一个字符串中。
data = f.read()
做完对文件的操作之后,记得用close()关闭文件,释放资源。
读取文件内容的方法还有
readline() #读取一行内容
readlines() #把内容按行读取至一个list中
但python默认是以只读模式打开文件。如果想要写入内容,在打开文件的时候需要指定打开模式为写入:
f =file('output.txt', 'w')
'w'就是writing,以这种模式打开文件,原来文件中的内容会被你新写入的内容覆盖掉,如果文件不存在,会自动创建文件。
不加参数时,file为你默认为'r',reading,只读模式,文件必须存在,否则引发异常。
另外还有一种模式是'a',appending。它也是一种写入模式,但你写入的内容不会覆盖之前的内容,而是添加到文件中。
打开文件还有一种方法,就是open(),用法和file()是一致的。
写入内容的方法同样简单:
f.write('a string you want to write')
write的参数可以是一个字符串,或者一个字符串变量。
示例程序:
data = 'I will be in a file.\nSo cool!'
out = open('output.txt', 'w')
out.write(data)
out.close()
while
循环 在条件不满足时 结束,
for 循环 遍历完序列后 结束。
如果在循环条件仍然满足或序列没有遍历完的时候,想要强行跳出循环,就需要用到break语句。
while True:a = raw_input()
if a == 'EOF':
break
break是彻底地跳出循环,而continue只是略过本次循环的余下内容,直接进入下一次循环。
注意:无论是continue还是break,其改变的仅仅是当前所处的最内层循环的运行,如果外层还有循环,并不会因此略过或跳出。在python中,可以使用try...except语句来处理异常。做法是,把可能引发异常的语句放在try-块中,把处理异常的语句放在except-块中。字典这种数据结构有点像我们平常用的通讯录,有一个名字和这个名字对应的信息。在字典中,名字叫做“键”,对应的内容信息叫做“值”。字典就是一个键/值对的集合。
它的基本格式是(key是键,alue是值):
d = {key1 : value1, key2 : value2 }
关于字典的键要注意的是:
1.键必须是唯一的;
2.键只能是简单对象,比如字符串、整数、浮点数、bool值。
list就不能作为键,但是可以作为值。
python字典中的键/值对没有顺序,我们无法用索引访问字典中的某一项,而是要用键来访问。
注意,如果你的键是字符串,通过键访问的时候就需要加引号,如果是数字作为键则不用。
字典也可以通过for...in遍历:for name inscore:
增加一项字典项的方法是,给一个新键赋值:
score['慕容复'] = 88
模块可以理解为是一个包含了函数和变量的py文件。在你的程序中引入了某个模块,就可以使用其中的函数和变量。
想知道random有哪些函数和变量,可以用dir()方法:dir(random)
如果你只是用到random中的某一个函数或变量,也可以通过from...import...指明:
from math import pi
print pi
from math import pi as math_pi
print math_pi
def hello(name = 'world'):
print 'hello ' + name
当你没有提供参数值时,这个参数就会使用默认值;如果你提供了,就用你给的。
这样,在默认情况下,你只要调用
hello()
意,当函数有多个参数时,如果你想给部分参数提供默认参数,那么这些参数必须在参数的末尾。比如:
def func(a, b=5)
是正确的
def func(a=5, b)
就会出错
python是一种高度面向对象的语言,它其中的所有东西其实都是对象。所以我们之前也一直在使用着对象。看如下的例子:
1. s = 'how are you'
2. #s被赋值后就是一个字符串类型的对象
3. l = s.split()
4. #split是字符串的方法,这个方法返回一个list类型的对象
5. #l是一个list类型的对象
通过dir()方法可以查看一个类/变量的所有属性:
1. dir(s)
2. dir(list)
关键字class加上类名用来创建一个类。之后缩进的代码块是这个类的内部。在这里,我们用pass语句,表示一个空的代码块。
类名加圆括号()的形式可以创建一个类的实例,也就是被称作对象的东西。我们把这个对象赋值给变量mc。于是,mc现在就是一个MyClass类的对象。
看一下输出结果:
1. <__main__.MyClass instance at0x7fd1c8d01200>
2.
这个意思就是说,mc是__main__模块中MyClass来的一个实例(instance),后面的一串十六进制的数字是这个对象的内存地址。调用类变量的方法是“对象.变量名”。你可以得到它的值,也可以改变它的值。
注意到,类方法和我们之前定义的函数区别在于,第一个参数必须为self。而在调用类方法的时候,通过“对象.方法名()”格式进行调用,而不需要额外提供self这个参数的值。self在类方法中的值,就是你调用的这个对象本身。