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=arr
10     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 = 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)

注意:

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() 后的读取位置,这样它

就可以在下次被调用时读取接下来的一行了。

时间: 2025-02-01 11:58:22

python_5的相关文章

虫师Selenium2+Python_5、自动化测试模型

P138——模块化驱动测试实例 P142——参数化搜索关键字 from selenium import webdriver search_text = ['python','中文','text'] # 存放搜索的关键字 for text in search_text: # 通过for循环来遍历数组 driver = webdriver.Firefox() driver.implicitly_wait(10) driver.get("http://www.baidu.com") driv

python_函数进阶(5)

第1章 函数有用信息1.1 login.__doc__1.2 login.__name__第2章 装饰器的进阶2.1 带参数的装饰器2.2 多个装饰器装饰一个函数2.3 开放封闭原则 第3章 可迭代对象 3.1 判断对象方法dir()3.2 通俗测试方法:3.3 方法1:'__iter__' in dir(list)3.4 方法2:isinstance第4章 迭代器 4.1 定义 4.2 迭代器转换 4.2.1 判断方法1 4.2.2 判断方法2: 4.3 转换成迭代器的优势4.4 模拟for循