【发布时间】:2018-10-05 21:32:31
【问题描述】:
我查看了类似的帖子,但找不到任何可以解决我问题的帖子。在我的代码中注释掉的 for 循环会产生正确的输出,告诉我我期望给定句子的索引是正确的。
程序要求输入几个句子,然后将句子中第一个单词的首字母大写。
def main():
sentence = input('Enter a few sentences (with periods to end them) ')
s = capitalize_sentence(sentence)
#print(s)
def capitalize_sentence(s):
sentences = s.split('.');
result = ''
for sentence in sentences:
# these print as expected no index errors
#for i in range(len(sentence)):
# print(i, sentence[i])
if sentence[0] == ' ': # assuming 1 space separates sentences
result += ' '
result += sentence[1].upper()
result += sentence[2:]
result += '.'
else:
result += sentence[0].upper()
result += sentence[1:]
result += '.'
return result
main()
回溯输出为:
请输入几句话(用句号结尾)你好。你好吗。 Traceback(最近一次通话最后一次):文件 “C:/Old_Data/python/book/ch08/ch08_ex08_sentence_capitalizer.py”,行 29,在 main() 文件“C:/Old_Data/python/book/ch08/ch08_ex08_sentence_capitalizer.py”,行 4、主要 s = capitalize_sentence(sentence) 文件“C:/Old_Data/python/book/ch08/ch08_ex08_sentence_capitalizer.py”,行 17、大写句子 if sentence[0] == ' ': # 假设 1 个空格分隔句子 IndexError: string index out of range
感谢您提供的任何帮助。
编辑:我提供的字符串是:你好。你好吗。
【问题讨论】:
-
你能提供一个样本
sentence输入吗?这是可以解决的。我想确保它适用于您选择的输入 -
@Abhishek 我编辑了我的帖子以显示我作为输入提供的字符串。
标签: python