Learn Python The Hard Way学习(20) - 函数和文件

回忆一下函数的检查列表,一边练习一边看看函数和文件是怎么一起工作的。
from sys import argv


script, input_file = argv


def print_all(f):
    print f.read()


def rewind(f):
    f.seek(0)


def print_a_line(line_count, f):
    print line_count, f.readline()


current_file = open(input_file)


print "First let's print the whole file:\n"


print_all(current_file)


print "Now let's rewind, kind of lile a tape."


rewind(current_file)


print "Let's print three lines:"


current_line = 1
print_a_line(current_line, current_file)


current_line = current_line + 1
print_a_line(current_line, current_file)


current_line = current_line + 1
print_a_line(current_line, current_file)

注意一下,我们是怎么把行号传递给print_a_line函数的。

运行结果
root@he-desktop:~/mystuff# python ex20.py test.txt
First let's print the whole file:

Hi!
Welcome to china!
Thank you.
Goodbye!

Now let's rewind, kind of lile a tape.
Let's print three lines:
1 Hi!

2 Welcome to china!

3 Thank you.

root@he-desktop:~/mystuff# 

加分练习
1. 给每行添加注释。

2. 每次调用print_a_line都传递了变量current_line,并且在函数中打印出来,那么print_a_line是怎么变成line_count的呢?

3. 检查函数是否用def定义,参数是否正确。

4. 查询seek函数的用法。
seek(offset,where):  where=0从起始位置移动(默认),1从当前位置移动,2从结束位置移动。当有换行时,会被换行截断。seek()无返回值,故值为None。

5. 查询一下 += 符合的用法,然后再程序使用一下。
current_line = current_line + 1
current_line += 1
这两行是一个意思。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值