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


回忆一下函数的检查列表,一边练习一边看看函数和文件是怎么一起工作的。
[python]
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
这两行是一个意思。
作者:lixiang0522

相关内容

    暂无相关文章

评论关闭