第29讲 动动手01题
题目是:编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置。这里题目要求还要找出第一个不同字符的位置,所有我自己的程序如下:
file1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')
count = 0
p=0
list3 =[]
list4 =[]
f1 = list(open(file1,'r',encoding='UTF-8'))
f2 = list(open(file2,'r',encoding='UTF-8'))
l1 = len(f1)
l2 = len(f2)
short = l1 if l1<=l2 else l2
long = l1 if l1>=l2 else l2
for i in range(0,short):
if f1 != f2 :
n = len(f1)
for m in range(0,n):
if f1 != f2:
list4.append(m+1)
break
else:
continue
count +=1
list3.append(i+1)
else:
continue
print('两个文件共有【%d】处不同:'% (count+(long-short)))
for j in list3:
print('第',j,'行不一样',' 第',list4,'个字符开始不一样')
p+=1
for k in range(short+1,long+1):
print('第',k,'行不一样',' 第1个字符开始不一样')
http://r.photo.store.qq.com/psc?/V12Rnolx0ECtJT/XwdxpE8Hv.bcKvYPS8WipKt8bVzx.TPUItSWD2dADjDf3Flj8Bm7SU1*8fqrRYIaveQEeNxQ5GNTHBtB*zzwf8qnLUBUtqoLM8N4LXkwiEk!/r
结果图如下:
http://r.photo.store.qq.com/psc?/V12Rnolx0ECtJT/XwdxpE8Hv.bcKvYPS8WipAFRdXGIuTeP2eRLAHMaHKJFY1TZqkPks2FYoa1pNkNNascZ8CQEPI1JwpPNKtECxV7*IJmOhJ1yPYldyLIWMeg!/r
请问我这样理解正确吗?? 题意应该就是这个意思,也没说要打印那个字错了啥子的。 本帖最后由 Twilight6 于 2020-7-5 08:12 编辑
对哈,能做出同样的效果就行,这里建议你代码可以少去的几个地方,去不去都不影响,只是代码美观些:
第一:open 默认打开方式就是 r 只读,所以你 open 里的 'r' 可以去掉哈
第二:for m in range(0,n):
if f1 != f2:
list4.append(m+1)
break
else:
continue
代码里的 else:continue 可以去掉,因为当你循环条件不满足时候 for 循环会开始下一次循环,而且你continue 后没有需要运行的代码,所以你这里这个可以去掉哈~
更改 后的代码:
file1 = input('请输入需要比较的头一个文件名:')
file2 = input('请输入需要比较的另一个文件名:')
count = 0
p = 0
list3 = []
list4 = []
f1 = list(open(file1, encoding='UTF-8'))
f2 = list(open(file2, encoding='UTF-8'))
l1 = len(f1)
l2 = len(f2)
short = l1 if l1 <= l2 else l2
long = l1 if l1 >= l2 else l2
for i in range(0, short):
if f1 != f2:
n = len(f1)
for m in range(0, n):
if f1 != f2:
list4.append(m + 1)
break
count += 1
list3.append(i + 1)
print('两个文件共有【%d】处不同:' % (count + (long - short)))
for j in list3:
print('第', j, '行不一样', ' 第', list4, '个字符开始不一样')
p += 1
for k in range(short + 1, long + 1):
print('第', k, '行不一样', ' 第1个字符开始不一样')
青出于蓝 发表于 2020-7-5 07:45
题意应该就是这个意思,也没说要打印那个字错了啥子的。
哈哈对啊,我就按题意写了,也不知道有没有写复杂{:5_91:}想看看其他鱼友们的写法
页:
[1]