V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
muziyue
V2EX  ›  Python

Python 问题,这个为啥不对!

  •  1
     
  •   muziyue ·
    Mooooooon · 2014-10-13 02:35:02 +08:00 · 4470 次点击
    这是一个创建于 3693 天前的主题,其中的信息可能已经有所发展或是发生改变。
    29 条回复    2014-10-15 08:55:34 +08:00
    jybox
        1
    jybox  
       2014-10-13 02:44:38 +08:00
    先去除一下尾部的空格?
    muziyue
        2
    muziyue  
    OP
       2014-10-13 02:50:45 +08:00
    @jybox 好吧 其实只有一行 后面没空格 我是截图的时候看着括号是高亮的看着难受才按了下回车
    jybox
        3
    jybox  
       2014-10-13 03:05:49 +08:00
    @muziyue 我是说去除一下读入的数据尾部的空格....
    sandtears
        4
    sandtears  
       2014-10-13 03:16:14 +08:00 via Android
    print 输出的数据,结尾默认带一个 \n
    14
        5
    14  
       2014-10-13 03:26:11 +08:00 via Android
    为什么通过率这么低。。。
    muziyue
        6
    muziyue  
    OP
       2014-10-13 03:58:14 +08:00
    @jybox
    谢提醒 仔细看了下 他输入的首位都有个空格
    muziyue
        7
    muziyue  
    OP
       2014-10-13 04:02:25 +08:00
    @sandtears 这个输出是没问题的,主要是输入和处理
    xifangczy
        8
    xifangczy  
       2014-10-13 04:23:41 +08:00
    这是什么网站啊
    muziyue
        9
    muziyue  
    OP
       2014-10-13 04:36:19 +08:00
    @xifangczy jisuanke 你可以找找我以前发的邀请码
    loading
        10
    loading  
       2014-10-13 07:05:21 +08:00
    这。。。我还是不注册了。
    wizardoz
        11
    wizardoz  
       2014-10-13 09:31:27 +08:00
    测试用例的结尾有多个空格。先用strip再用split,或者split完过滤一下
    muziyue
        12
    muziyue  
    OP
       2014-10-13 14:21:32 +08:00
    swirling
        13
    swirling  
       2014-10-13 14:55:33 +08:00 via iPhone
    没判断空结果集
    muziyue
        14
    muziyue  
    OP
       2014-10-13 14:56:16 +08:00
    @swirling 测试过了,没用,空能直接返回0不报错
    berry10086
        15
    berry10086  
       2014-10-13 15:34:23 +08:00 via Android
    这是什么网站
    doomgiant
        16
    doomgiant  
       2014-10-13 16:28:45 +08:00
    @berry10086

    jisuanke
    bertram
        17
    bertram  
       2014-10-13 17:25:47 +08:00
    要求要一行代码么?
    muziyue
        18
    muziyue  
    OP
       2014-10-13 17:26:52 +08:00
    @bertram 不要求……我试过别的写法,还是卡在这里
    mengskysama
        19
    mengskysama  
       2014-10-13 18:41:09 +08:00   ❤️ 1
    try:
    print len(raw_input().split()[-1])
    except:
    print 0

    TRYTRY?
    不行就把测试数据套出来看看?print raw_input()
    starsoi
        20
    starsoi  
       2014-10-13 20:17:19 +08:00   ❤️ 1
    try:
    ....print len((raw_input().split() or [''])[-1])
    except EOFError:
    ....print 0
    Delbert
        21
    Delbert  
       2014-10-13 21:01:06 +08:00   ❤️ 1
    我觉得这个网站有问题,我 Python3 的代码都通不过;我本地通过的代码在线就通不过……
    samnew
        22
    samnew  
       2014-10-13 22:31:52 +08:00   ❤️ 1
    这个网站python会出现莫名的格式问题 用C做就没事
    swirling
        23
    swirling  
       2014-10-13 22:49:34 +08:00 via iPhone   ❤️ 1
    我也试了下,py3不能通过~ 2.7没问题~
    xifangczy
        24
    xifangczy  
       2014-10-13 23:43:21 +08:00   ❤️ 1
    刚刚去注册了 限时注册。
    可能是python版本的关系 第4组输入的是空会出错,需要先判断输入的内容或者用try
    muziyue
        25
    muziyue  
    OP
       2014-10-14 08:52:45 +08:00
    @mengskysama
    @xifangczy
    可能是这么回事,我本地不会报错,加了try就没问题了
    mengskysama
        26
    mengskysama  
       2014-10-14 16:02:43 +08:00
    @muziyue
    是这样的
    print ' 123456 1 '.split(' ') -> ['', '123456', '1', '']
    print ' 123456 1 '.split() -> ['123456', '1']
    不用try应该也是可以的,在取[-1]的时候只需要判断一下len是否>0就行了,这个try我是偷懒用建议不要学。
    muziyue
        27
    muziyue  
    OP
       2014-10-14 16:55:40 +08:00
    @mengskysama 判断结果这个我试过,不行的,不然是输入的还是截取后的
    starsoi
        28
    starsoi  
       2014-10-14 17:50:09 +08:00   ❤️ 1
    @muziyue @mengskysama 第4组数据并不仅仅是空数据,而是EOF。可以在python console里试试raw_input().strip() 然后不是按回车,而是Ctrl+D(发送EOF),就会报EOFError异常了。raw_input()里文档也说"When EOF is read, EOFError is raised"。所以必须要捕获EOFError这个异常。
    muziyue
        29
    muziyue  
    OP
       2014-10-15 08:55:34 +08:00
    @starsoi 原来如此,感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3435 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 10:31 · PVG 18:31 · LAX 02:31 · JFK 05:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.