Torwnexial 发表于 2020-3-30 10:22:31

Python求助,鱼币答谢

我遇上了“can only concatenate str (not "int") to str”这样的报错,代码如下
count=0
one=[]
two=[]
t=0#此时会报错,而去掉此处,在下面的一个注释那里加就不会报错
o=input("输入第一个文件名:")
t=input("输入第二个文件名:")
'''
我打开的文件1内容为:Hello
                                  hi
第二个文件内容为:Hello world
                           hi
'''
f1=open(o)
f2=open(t)
for i in f1:
    one.append(i)
    count += 1
for j in f2:
    two.append(j)
f1.close()
f2.close()
# 上面的t=0加载此就不会报错
for p in range(count):
    if one!=two:
      t+=1
      print("在第",p+1,"行的",one,"与",two,"不同",sep='',end='')
print()
print("共有",str(t),"处不同",sep='',end='')

如报错图片所示,这是为什么,求大佬告知

qiuyouzhi 发表于 2020-3-30 10:25:24

t不是个字符串吗?
为何要给它+1?
你后面那个t覆盖了前面的t
而且有两个t,建议不要重名

最后的魁拔 发表于 2020-3-30 10:25:32

建议下载个有道词典,把出错信息,翻译一下,然后在网上搜缩
你这个是不能把数字拼接到字符串把

一个账号 发表于 2020-3-30 10:43:51

t 是一个字符串,不能加 1

sunrise085 发表于 2020-3-30 10:45:24

错误的根本原因是变量命名重复
在第4行有个t是int类型,但是在第6行又有一个t是字符串类型
第6行的t会覆盖掉第4行的t

我猜你的本意,在第5行第6行打算用one two 的首字母来代表两个文件名,但是却一不小心和前面的变量名重复了。

Torwnexial 发表于 2020-3-30 10:48:38

qiuyouzhi 发表于 2020-3-30 10:25
t不是个字符串吗?
为何要给它+1?
你后面那个t覆盖了前面的t


哦哦,谢谢,没看见

Torwnexial 发表于 2020-3-30 10:49:09

一个账号 发表于 2020-3-30 10:43
t 是一个字符串,不能加 1

哦哦,谢谢,没看见

Torwnexial 发表于 2020-3-30 10:49:44

最后的魁拔 发表于 2020-3-30 10:25
建议下载个有道词典,把出错信息,翻译一下,然后在网上搜缩
你这个是不能把数字拼接到字符串把

哦哦,谢谢

Torwnexial 发表于 2020-3-30 10:50:59

sunrise085 发表于 2020-3-30 10:45
错误的根本原因是变量命名重复
在第4行有个t是int类型,但是在第6行又有一个t是字符串类型
第6行的t会覆 ...

好的,谢谢

海纳的核电站 发表于 2020-3-31 23:33:47


建议去网页百度翻译,把出错信息,翻译一下,然后在网上搜缩
你这个是不能把数字拼接到字符串把

aironeng 发表于 2020-11-25 09:16:18

学习
页: [1]
查看完整版本: Python求助,鱼币答谢