Python 问题,这个为啥不对! - V2EX
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 4907 次点击
    这是一个创建于 4018 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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     Solana     3061 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 12:45 PVG 20:45 LAX 05:45 JFK 08:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86