【发布时间】:2015-10-24 10:56:31
【问题描述】:
我正在使用 string 和 re 模块来处理文本(在句子中查找带条纹的单词)以解决 Python 2.7 中 checkIO 的问题。当我在我的计算机上运行我的 python 脚本时,我没有收到任何错误。
text = "My name is ..."
import re, string
init_word_list = re.findall('[A-z0-9]+', text)
word_list = []
for k in init_word_list:
print type(k), repr(k)
if str.isdigit(k):
word_list.append(k)
else:
pass
但是,当我在 checkIO 上运行相同的代码时,我收到以下 TypeError。
TypeError: descriptor 'isdigit' requires a 'str' object but received a `'unicode'`
您可能已经注意到,我确实插入了 type() 和 rep() 来确定 python 在那时读取我的字符串的内容。这是输出:
<type 'unicode'> u'My'
我想知道,如果我做错了什么。另外,我有什么选择来解决这个问题?在运行 str.isdigit() 函数之前,我应该从 unicode 转换为 ASCII 吗?或者,我应该使用 re 模块进行字母检查吗?我冒昧地猜测,人们会将我指向 checkIO 论坛,以了解为什么他们的程序处理脚本的方式与在我的计算机上运行的 python 不同,但如果有人也理解这一点.. 太好了。 :)
【问题讨论】:
标签: regex string python-2.7 unicode ascii