您的位置:首页 > 编程语言 > Python开发

python作业3

2017-04-07 16:22 134 查看
1.文件比较:写一个比较两个文本文件的程序:如果不同,给出第一个不同处的行号和列号

#!/usr/bin/env python

#coding:utf-8

file1 = open("/mnt/test1","r",buffering=-1)

file2 = open("/mnt/test2","r",buffering=-1)

row = 0

for(line1,line2) in zip(file1,file2):

        row +=1

        if line1 == line2:

                pass

        else:

                col = 0

                print "different row:%d"%row

                for(a,b) in zip (line1,line2):

 

                        if a == b:

                                col +=1

                        else:

 

                                print "different col:%d"%col

                                col +=1

file1.close()

file2.close()

###########补充:open()#########

作为打开文件之门的"钥匙", 内建函数 open() [以及 file() ]提供了初始化输入/输出(I/O)

操作的通用接口. open() 内建函数成功打开文件后时候会返回一个文件对象, 否则引发一个错误.

当操作失败, Python 会产生一个 IOError 异常 - 我们会在下一章讨论错误和异常的处理. 内建函

数 open() 的基本语法是:

file_object = open(file_name, access_mode='r', buffering=-1)

file_name 是包含要打开的文件名字的字符串, 它可以是相对路径或者绝对路径. 可选变量

access_mode 也是一个字符串, 代表文件打开的模式. 通常, 文件使用模式 'r', 'w', 或是 'a'

模式来打开, 分别代表读取, 写入和追加. 还有个 'U' 模式, 代表通用换行符支持(见下).

使用 'r' 或 'U' 模式打开的文件必须是已经存在的. 使用 'w' 模式打开的文件若存在则首

先清空, 然后(重新)创建. 以 'a' 模式打开的文件是为追加数据作准备的, 所有写入的数据都将

追加到文件的末尾. 即使你 seek 到了其它的地方. 如果文件不存在, 将被自动创建, 类似以 'w'

模式打开文件. 如果你是一个 C 程序员, 就会发现这些也是 C 库函数 fopen() 中使用的模式.

另外一个可选参数 buffering 用于指示访问文件所采用的缓冲方式. 其中 0 表示不缓冲, 1

表示只缓冲一行数据, 任何其它大于 1 的值代表使用给定值作为缓冲区大小. 不提供该参数或者

给定负值代表使用系统默认缓冲机制, 既对任何类电报机( tty )设备使用行缓冲, 其它设备使用正

常缓冲. 一般情况下使用系统默认方式即可.

##########zip#############

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。

(1)如: x = [1,2,3]

y = [4,5,6]

z = [7,8,9]

xyz = zip[x,y,z]

print xyz

运行结果是:

[(1,4,7)(2,5,8)(3,6,9)] //可以看出zip函数的运作方式

(2)又如:

x = [1,2,3]

y = [4,5,6,7]

xy = zip(x,y)

print xy

运行结果是:

[(1,4)(2,5)(3,6)] //可以看出zip函数的长度处理方式

(3)zip函数只有一个参数时的运作:

x = [1,2,3]

x = zip(x)

print x

运行结果是:

[(1),(2)(3)]

(4)

z = zip()

print z

运行结果是: [] //可以看出zip函数在没有参数时的运作方式

(5)unzip 的运作:

x = [1,2,3]

y = [4,5,6]

z = [7,8,9]

xyz = zip[x,y,z]

u = zip(*xyz) //在运行zip(*xyz)之前,xyz的值是:[(1,4,7),(2,5,8),(3,6,9)]

那么,zip(*xyz)等价与 zip(1,4,7),(2,5,8),(3,6,9)

print u

运行结果是:[(1,2,3),(4,5,6),(7,8,9)]

(6)

x = [1,2,3]

r = zip(*[x]*3)

运行结果是:

[(1,1,1),(2,2,2),().3,3,3]

他的运行机制是:【x】生成一个列表的列表,他只有一个元素x,[x]*3  生成一个列表的列表,他有三个元素[x,x,x],zip(*[x]*3)就是zip(x,x,x)

 

 

 

2.匹配简单的以“www."开头,以”.com“序哦结尾的为恶霸域名,例如:www.yahoo.com.附加题:使你写的正则表达式还支持其他顶级域名:.edu,.net,等,如:www.ucec.edu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: