码迷,mamicode.com
首页 > 编程语言 > 详细

python_5

时间:2014-12-16 16:49:15      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   color   os   sp   strong   on   

函数,变量

 

bubuko.com,布布扣
 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=arr
10     print add4:%s,%s %(a,b)
11 add1(1,2)
12 add2(4)
13 add3()
14 add4(100,qwer)
View Code

 

 

bubuko.com,布布扣

注意:

*arr 的 * 是什么意思?
它的功能是告诉 python 让它把函数的所有参数都接受进来, 然后放到名字叫 arr 的列表中去。
和你一直在用的 argv 差不多, 只不过前者是用在函数上面。

============================================================

按行读取文件:

bubuko.com,布布扣
 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 = 1
14 print_line(current_line,open_file)
15 current_line = current_line+1
16 print_line(current_line,open_file)
17 current_line = current_line+1
18 print_line(current_line,open_file)
View Code

bubuko.com,布布扣

注意:

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

标签:style   blog   http   ar   color   os   sp   strong   on   

原文地址:http://www.cnblogs.com/wufeng0927/p/4167366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!