让我跳过我所拥有的确切代码:这是short模块
class SentenceSplitter:
def __init__(self, filename=None):
self._raw_text = self.raw_text(filename)
self._sentences = self.to_sentences()
def raw_text(self, filename):
text = ''
with open(filename, 'r') as file:
for line in file.readlines():
line = line.strip()
text += ''.join(line.replace(line, line+' '))
file.close()
text = text.strip() # Deal with the last whitespace
return text
def to_sentences(self):
""" Sentence boundaries occur at '.', '!', '?' except that,
there are some not-sentence boundaries that
may occur before/after the period.
"""
raw_text = self._raw_text
sentences = []
sentence = ''
boundary = None
for char in raw_text:
sentence += ''.join(char)
if char == '!' or char == '?':
sentences.append(sentence)
sentence = ''
""" The sign -> refers to 'followed by' """
elif char == '.':
i = raw_text.index(char) # slicing previous/following characters
boundary = True
if boundary:
sentences.append(sentence)
sentence = ''
return sentences主要的是:
import textchange
ss = textchange.SentenceSplitter(filename='text.txt')
print(ss._sentences)第一个if语句后的文档字符串
""" The sign -> refers to 'followed by' """我把它注释掉了,程序运行了,否则就不会了。elif语句中有更多的代码,但在确保它仍然抛出错误后将其删除。下面是回溯:
Traceback (most recent call last):
File "D:\Programs\Python 3.3.2\Tutorials\46 Simple Python Exercises.py", line 26, in
<module>
import textchange
File "D:\Programs\Python 3.3.2\Tutorials\textchange.py", line 51
elif char == '.':
^
SyntaxError: invalid syntax发布于 2013-08-31 15:50:19
Docstring只是在函数开始处找到的字符串文字。它们仍然必须遵循缩进规则。
您的字符串没有正确地缩进到elif块中;通过在前面从if块中缩进,您完全结束了if-elif-else块,并且不允许跟随任何elif。
使用常规的、普通的注释,以#开头的行;仅包含注释的行不受缩排规则的约束:
if char == '!' or char == '?':
sentences.append(sentence)
sentence = ''
# The sign -> refers to 'followed by'
elif char == '.':
i = raw_text.index(char) # slicing previous/following characters
boundary = True或者缩进字符串(它仍然完全由Python作为代码执行,但不会被赋值,因此再次被丢弃):
if char == '!' or char == '?':
sentences.append(sentence)
sentence = ''
elif char == '.':
""" The sign -> refers to 'followed by' """
i = raw_text.index(char) # slicing previous/following characters
boundary = Truehttps://stackoverflow.com/questions/18545178
复制相似问题