from sys import argvscript, input_file = argvdef 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 like a tape."rewind (current_file)print "Let's print three lines:"current_line = 1print_a_line(current_line, current_file)current_line = current_line + 1print_a_line(current_line, current_file)current_line = current_line + 1print_a_line(current_line, current_file)出自《笨辦法學python》習題20 主要有兩個問題1、 f.read() 應該是讀取 文件f的內容。但是代碼并沒有把文件賦值給f。那么他是怎么工作的?2、def 是定義一個函數,應該怎么理解? 這段代碼是不是把print_all(f)和 print f.read()定義了?還是 print f.read() 定義為函數,這個函數的名字叫print_all(f)?
4 回答

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
123456 | def print_all(f): #定義一個函數print_all,接受一個參數f print f.read() #這個函數執行f.read() def rewind(f): #定義一個函數rewind,接受一個參數f f.seek( 0 ) #f.seek(0)將f的文件指針恢復到文件開頭 def print_a_line(line_count, f): #定義一個函數print_a_line,有兩個參數line_count,f print line_count, f.readline() |
print "First let's print the whole file: \n"
print_all (current_file) #將current_file作為參數調用函數print_all,執行函數時f等于current_file
其余函數調用都是差不多,就不多說了
添加回答
舉報
0/150
提交
取消