鱼C论坛

 找回密码
 立即注册
查看: 2312|回复: 5

29讲课后习题第一题,执行报错

[复制链接]
发表于 2016-4-5 15:07:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第一题,按小甲鱼老师的代码,执行后报错
用的是python2.7
  1. # -*- coding:cp936  -*-


  2. #编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置

  3. def file_compare(file1,file2):
  4.     f1 =((open(file1)))
  5.     f2 =((open(file2)))
  6.     count = 0  #统计行数
  7.     differ = []  #统计不一样的数量

  8.     for line1 in f1:
  9.         line2 = str(f2.readline())
  10.         count += 1
  11.         if line1 != line2:
  12.             differ.append(count)

  13.     f1.close()
  14.     f2.close()
  15.     return differ

  16. file1 = input('请输入需要比较的第一个文件名:')
  17. file2 = input('请输入需要比较的第二个文件名:')

  18. differ =(file_compare(file1,file2))

  19. if len(differ) == 0:
  20.     print('两个文件完全一样!')
  21. else:
  22.     print('两个文件共有【%d】处不同:' % len(differ))
  23.     for each in differ:
  24.         print('第%d 行不一样' % each)
复制代码


报错信息:
  1. >>> ================================ RESTART ================================
  2. >>>
  3. 请输入需要比较的第一个文件名:123
  4. 请输入需要比较的第二个文件名:321

  5. Traceback (most recent call last):
  6.   File "I:\python exercise\029lesson\t1.py", line 25, in <module>
  7.     differ =(file_compare(file1,file2))
  8.   File "I:\python exercise\029lesson\t1.py", line 7, in file_compare
  9.     f1 =((open(file1)))
  10. TypeError: coercing to Unicode: need string or buffer, int found
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-4-5 16:51:58 | 显示全部楼层
python2.7用input输入会得到一个整数,无法作为文件名。试试raw_input
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-4-5 16:54:10 | 显示全部楼层
还有一个建议,学小甲鱼老师的课,最好用python3,可以避免很多意想不到的问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-5 17:12:49 | 显示全部楼层
冬雪雪冬 发表于 2016-4-5 16:51
python2.7用input输入会得到一个整数,无法作为文件名。试试raw_input

恩 是哒    raw_input   没有问题   多谢     
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-5 17:14:19 | 显示全部楼层
冬雪雪冬 发表于 2016-4-5 16:54
还有一个建议,学小甲鱼老师的课,最好用python3,可以避免很多意想不到的问题。

我们现在工作上  用的是python2,所以在学2,  恩  谢谢建议,我再另装个python3
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-6 18:36:59 | 显示全部楼层
容我挖坟 再问下
#编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置

问题里有要求说 显示出所有不同处的行号与第一个不同字符的位置

甲鱼哥的答案 貌似并没有显示出第一个不同字符的位置把??
只是得出了行号和不同的数量吧??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-20 13:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表