Ootme 发表于 2019-11-19 09:13:42

为什么我的出现没显示

f1=open('something.txt')
f2=open('something1.txt')
str1=[]
str2=[]
t = 0
for i in f1:
    str1.append(i)
for j in f2:
    str2.append(j)
f1.close()
f2.close()
lentgh= len(str1)
while 1:   
    if str1 != str2:
      print('第 %d 行不同' % (t+1))
      t+=1
    else:
      lentgh -=1



RT
是不是变量t出了问题

冬雪雪冬 发表于 2019-11-19 10:30:55

t+=1不要放在if语句体中,否则if不成立时,t一直为0,成为死循环。
还有lentgh没有作用。

jackz007 发表于 2019-11-19 11:59:06

本帖最后由 jackz007 于 2019-11-19 16:04 编辑

      使用 for 代替 while 循环,代码可以简化不少:
f1 , f2 = open('something.txt') , open('something1.txt')
str1 , str2 = ,
f1 . close() , f2 . close()
for t in range(len(str1)):
    if str1 != str2:
      print('第 %d 行不同' % (t + 1))

niuthon 发表于 2019-11-19 12:36:38

t +=1 放在最后面吧,不管if成立不成立t都要+1

zltzlt 发表于 2019-11-19 19:38:47

除了 2# 所说的问题外,还要加一个 try 语句:

f1=open('something.txt')
f2=open('something1.txt')
str1=[]
str2=[]
t = 0
for i in f1:
    str1.append(i)
for j in f2:
    str2.append(j)
f1.close()
f2.close()
while 1:
    try:
      if str1 != str2:
            print('第 %d 行不同' % (t+1))
      t+=1
    except:
      break
页: [1]
查看完整版本: 为什么我的出现没显示