【发布时间】:2017-12-28 04:59:19
【问题描述】:
我目前正在学习使用 ord() 和 chr(),但是在使用以下代码时遇到了困难。
b = '1101'
i = 0
while b != ' ' :
i = i*2 + ( ord(b[0]) + ord('0') )
b = b[1:]
Traceback (most recent call last):
File "<pyshell#86>", line 2, in <module>
i = i*2 + ( ord(b[0]) + ord('0') )
IndexError: string index out of range
为什么我的字符串超出范围并抛出错误,而不是像我预期的那样退出循环?
【问题讨论】:
-
b 不会变成空格。空间从何而来?顺便说一句,标题不错。
-
您的错误基于 while 循环和缩小的字符串,您可能希望从答案中删除
chr和ord部分并给它一个更具描述性的标题,以便未来的人有同样错误的可以找到这个答案。 -
请edit您的帖子和a) 使标题描述您遇到的问题或您要问的问题,因此它对未来的读者在列表中看到它有一些用处搜索结果,并且 b) 比遇到困难更具体地说明您遇到的问题。您发布的代码有哪些具体困难?见How to Ask。
标签: python-2.7 list while-loop