Re: [问题] 一行code in O'Reilly 深入浅出

楼主: octantis (@.@)   2016-02-23 00:37:56
※ 引述《ray60110 (Yen)》之铭言:
: 各位大大好,小弟最近才刚接触python
: 在O'Reilly的python 深入浅出的例外,额外处理的章节中,
: 他给了一段solution
: =================================
: data.open('sketch.txt')
: for each_line in data:
: if not each_line.find(':') == -1:
: (role, line_spoken) = each_line.split(':',1)
: print(role, end='')
: print('said', end='')
: print(line_spoken, end='')
: data.close()
: =================================
: 原本是没有加上if statement,但会碰上ValueError: too many values to unpack
: sketch.txt里面有一行刚好有2个以上的“:”,
: 小弟不懂得也是这个if statement
: 为什么加上这个if 就可以解决ValueError的问题?
: 这if的意思不是:
: 如果没有在each_line中找不到':'的话,就继续下面的code,
: 也就代表找到':',就会执行接下来的assign 跟 split?
: 这样还是会碰到too many values不是吗?
: 这是我的疑问
: 先谢谢各位
罚你再去重跑一次档案,连错误讯息都给错
你给的程式码有没有if都不会出现too many values to unpack
作者: ray60110 (Yen)   2016-02-23 10:32:00
啊 真的我打错了,是not enough value to unpack错误讯息是:ValueError: not enough value to unpack(expected 2 got 1)
作者: aweimeow (喵喵喵喵 ヽ( ・∀・)ノ)   2016-02-23 13:43:00
XD
作者: ray60110 (Yen)   2016-02-23 22:00:00
谢谢大大 已回家复习完毕 :)

Links booklink

Contact Us: admin [ a t ] ucptt.com