--
write 的参数可以是一个字符串,或者一个字符串变量。
示例程序:
data = 'I will be in a file.\\nSo cool!' out = open('output.txt', 'w') out.write(data)
在你的程序保存目录下,output 就会看到结果。
的每一个元素写成一行 打开类似的, .txt writelines(list) #
把 list
没有 writeline(list) 。 十七、处理文件中的数据
比如我现在拿到一份文档, 里面有某个班级里所有学生的平时作业成绩。 因为每个人交作业的次数不一样, 所以成绩的数目也不同, 没交作业的时候就没有分。 我现在需要统计每个学生的平时作业总得分。 看一下我们的文档里的数据: #-- scores.txt 刘备 23 35 44 47 51 关羽 60 77 68 张飞 97 99 89 91 诸葛亮 100
1. 先把文件读进来: f = file('scores.txt')
readlines ,把取得文件中的数据。因为每一行都是一条学生成绩的记
2. 录,所以用 每一 行分开,便于之后的数据处 理: lines = f.readlines() f.close()
提示:在程序中,经常使用 来查看数据的中间状态, 可以便于你理解程序的 print 运行。
比如这里你可以 print lines ,看一下内容被存成了什么格式。 3. 对每一条数据进行处理。按照空格,把姓名、每次的成绩分割开: for line in lines:
# 这da是 list data = line.split()
里
ta
接下来的
数据的处理,所以都是在
out.close()
4、 5 两个步骤都是针对一条for 循环的内部。
4. 整个程序最核心的部分到了。如何把一个学生的几次成绩合并,并保存
起来呢?我的做法是:对于每一条数据,都新建一个字符串,把学生的名字和算好的总成绩保存进去。最后再把这些字符串一起保存到文件中:
sum = 0
--
--
for score in data[1:]: sum += int(score)
result = '%s\\t: %d\\n' % (data[0], sum)
这里几个要注意的点:
对于每一行分割的数据, data[0] 是姓名, data[1:]
是所有成绩组成的列表。
--
--
每次循环中, sum 都要先清 零。
scor e 是一个字符串,为了做计算,需要转成整数值int 。
resul
中,我加了一个制表符 \\t 和换行符 \\n ,让输出的结果更好
t 看些。
得到一个学生的总成绩后,把它添加到5. 一个 list 中。 results.append(resul
# 这里
t) results 是 list
results =
需要在循环之前初始
results 化 []
results 中的内容保存至文件。因为是一个最后,全部成绩处理完毕
6. 后,把 results 字 符串组成的 list ,这里我们直接用 writelines 方法:
output = file('result.txt', 'w')
output.writelines(results) outpus.close()
十八、异常处理
在 python 中,可以使用 try...except语句来处理异常。 做法是, 把可能引发异常的语句放 在 try- 块中,把处理异常的语句放在except- 块中。例如: try:
f = file('non-exist.txt') print 'File opened!' f.close() except:
print 'File not exists.'
print 'Done'
十九、字dictionary 典
pyth中的基本类-- 字典diction): 型 (
on ary
字典这种数据结构有点像我们平常用的通讯录, 有一个名字和这个名字对应的信息。字典中,名字叫做“键 (key) ”,对应的内容信息叫做“值 (value) ”。字典就是一个键对的集合。键 / 值对用冒号分割,每个对之间用逗号分割,整个字典包括在花括号中。
d = {key1 : value1, key2 : value2 } 举个简单的字典例子: score = {' 关于字典的键要注意的是: 1. 键必须是唯一的;
萧峰 ': 95, ' 段誉 ': 97,' 虚竹 ': 89}
在 / 值
2. 键只能是简
--
--
单对象, 为键, 但是
比如字符串、 整数、浮点数、 bool 值。list 就不能作
以作为值。 3.python
有顺序, 我们无法用索引访问字典中的某一项, 访问。 例如 print score[' 段誉 '] 果你的键是字符串,
通过键访问的时候就需要加引号, 字典类的 get 方法是按 照给定 key 寻找对应项,如果不存在这样的 可
字典中的键 / 值对没而是要用键来
或者 print score.get(' 段誉 ') 。如如果是数字作为键则不用。 注意,key ,就返回空值 None
4. 字典也可以通过 for...in 遍历: for name in score:
print #
这里要用中括号 或者score[name]
print score.get(name) #这里要用小括号 注意,遍历的变量中存储的是字典的键。
--
--
5score如果要改变某一项的值,就直接给这一项. 赋值: [' 虚竹 '] = 91 6慕容复 '] = 增加一项字典项的方法是,给一个新键赋
. 值: score[' 88 7del : del 删除一项字典项的方
. 法是 score[' 萧峰 '] 注意,这个键必须已存在于字典 中。 8如果你想新建一个空的字典,只. 需要 : d = {}
二十、模块
python 自带了功能丰富的标准库,另外还有数量庞大的各种第三方库。使用这些功能 的基本方法就是使用 模块 。通过函数,可以在程序里重用代码;通过模块, 则可以重用别的程序中的代码。
模块可以理解为是一个包含了函数和变量的 py 文件。在你的程序中引入了某个模块, 就 可以使用其中的函数和变量。 来看一个我们之前使用过的模块:
import random
random 模块 中的内
import 语句 告诉 python ,我们要用 容。然后便可以使用 random 中的方 法,比如: random.randint(1, 10)
random.randchoic([1, 3, 5])
注意,函数前面需要加上“ random. ”,这样 python 才知道你是要调用
想知道 random 有哪些函数和变量,可以用 dir() 方法: dir(random)
如果你只是用到 random 中的某一个函数或变量,from...imp也可以通过
ort...
from random import randint ; from math import pi print pi 等同于
import math print math.pi
为了便于理解和避免冲突,你还可以给引入的方法换个名字: from math import pi as math_pi print math_pi
二十一、函数的默认参数
之前我们用过函数,比如: def hello(name): print 'hello ' + name 然后我们去调用这个函数:
hello('world')
random 中的方法。
指明:
--
相关推荐: