鱼C论坛

 找回密码
 立即注册
查看: 916|回复: 4

[已解决]第29讲动动手第3题

[复制链接]
发表于 2018-12-8 19:11:36 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 t1989523784 于 2018-12-8 19:20 编辑

def fff():
    name = input('请输入要打开的文件名:')
    line = input('请输入需要显示该文件的前几行:')
        
   
    f = open('d:\\' + name + '.txt')
    (begining , ending) = line.split(':' , 1)

    n = 0
    for each_line in f:
        n += 1

    f.seek(0)
   
    if begining == '':
        begining = '0'
   
    if ending == '':
        ending = str(n)
   
   
    if begining > ending:
        return fff()
   
    times = 0
    for each in f:
        times += 1
        time = str(times)
        
        if begining <= time <= ending :
            print(each , end = '\n')
            


fff()


请问为什么输入2:3是错误的但是输入13:15是正确的
求大佬指点!!谢谢!!
最佳答案
2018-12-8 21:45:22
str()格式为字符串后是不能比较的,要用int()将比较的的字符串转换为整形
  1. >>> '1' < '2'
  2. True
  3. >>> '11' < '2'
  4. True
  5. >>>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-8 21:35:22 | 显示全部楼层
你的beginning,ending都是字符串,要和time数字比,要转换int
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-8 21:45:22 | 显示全部楼层    本楼为最佳答案   
str()格式为字符串后是不能比较的,要用int()将比较的的字符串转换为整形
  1. >>> '1' < '2'
  2. True
  3. >>> '11' < '2'
  4. True
  5. >>>
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-9 09:43:20 | 显示全部楼层
塔利班 发表于 2018-12-8 21:35
你的beginning,ending都是字符串,要和time数字比,要转换int

谢谢大佬指点!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-9 09:43:56 | 显示全部楼层
幻千城12 发表于 2018-12-8 21:45
str()格式为字符串后是不能比较的,要用int()将比较的的字符串转换为整形

谢谢大佬指点!终于明白了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-13 02:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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