docstring blocks elif statement
让我跳过我的确切代码:这是短模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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 |
主要内容:
1 2 3 4 | import textchange ss = textchange.SentenceSplitter(filename='text.txt') print(ss._sentences) |
号
第一个if语句后的docstring
1 | """ The sign -> refers to 'followed by'""" |
我把它注释掉了,程序就运行了,否则就不运行了。elif语句中有更多的代码,但在确保它仍然抛出错误后将其移除。这是回溯:
1 2 3 4 5 6 7 8 | 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 |
。
docstrings只是在函数开头找到的字符串文本。他们仍然必须遵循缩进规则。
您的字符串没有正确缩进到
使用常规的常规注释,而不是以
1 2 3 4 5 6 7 8 | 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作为代码执行,但未被分配,因此再次丢弃):
1 2 3 4 5 6 7 8 | 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 = True |
号