sdchy 发表于 2017-5-6 10:26:43

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

这两行是一个意思。
页: [1]
查看完整版本: Learn Python The Hard Way学习(20)