首页 > 代码库 > python_5
python_5
函数,变量
1 def add1(a,b): 2 c=a+b 3 print ‘add1:%s‘ %c 4 def add2(a): 5 print ‘add2:%s‘ %a 6 def add3(): 7 print ‘add3:no‘ 8 def add4(*arr): 9 a,b=arr10 print ‘add4:%s,%s‘ %(a,b)11 add1(1,2)12 add2(4)13 add3()14 add4(100,‘qwer‘)
注意:
*arr 的 * 是什么意思?
它的功能是告诉 python 让它把函数的所有参数都接受进来, 然后放到名字叫 arr 的列表中去。
和你一直在用的 argv 差不多, 只不过前者是用在函数上面。
============================================================
按行读取文件:
1 script,file_name = argv 2 print ‘please input your file_name %s‘ %file_name 3 4 open_file = open(file_name) 5 6 def rewind(f): 7 f.seek(0) 8 rewind(open_file) 9 10 def print_line(line_number,f):11 print line_number,f.readline()12 13 current_line = 114 print_line(current_line,open_file)15 current_line = current_line+116 print_line(current_line,open_file)17 current_line = current_line+118 print_line(current_line,open_file)
注意:
1.为什么文件里会有间隔空行?
readline() 函数返回的内容中包含文件本来就有的 \n,而 print 在打印时又会添加一个 \n,这样一来就会多出一个空行了。
解决方法是在 print 语句结尾加一个逗号 , ,这样 print 就
不会把它自 己的 \n 打印出来了。
2.为什么 seek(0) 没有把 current_line 设为 0?
首先 seek() 函数的处理对象是 字节 而非行,所以 seek(0) 只是转到文件的 0 byte,也就
是第一个 byte 的位置。其次, current_line 只是一个独立变量,和文件本身没有任何关系,
我们只能手动为其增值。
3.readline() 是怎么知道每一行在哪里的?
readline() 里边的代码会扫描文件的每一个字节,直到找到一个 \n 为止, 然后它停止读取
文件,并且返回此前的文件内容。文件 f 会记录每次调用 readline() 后的读取位置,这样它
就可以在下次被调用时读取接下来的一行了。
python_5
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。