【发布时间】:2018-09-12 04:35:24
【问题描述】:
这是我被要求解决的问题:
创建一个程序,输入一个短语(如一句名言)并打印所有以 h-z 开头的单词。
我解决了问题,但是前两种方法都不起作用,我想知道原因:
#1 字符串索引超出范围
quote = input("enter a 1 sentence quote, non-alpha separate words: ")
word = ""
for character in quote:
if character.isalpha():
word += character.upper()
else:
if word[0].lower() >= "h":
print(word)
word = ""
else:
word = ""
对于“g”之后的任何单词,我都会收到 IndexError: string index out of range 消息。 else 语句不应该抓住它吗?我不明白为什么不这样做,因为如果我从word[0] 中删除括号[],它就可以工作。
#2:最后一个字不打印
quote = input("enter a 1 sentence quote, non-alpha separate words: ")
word = ""
for character in quote:
if character.isalpha():
word += character.upper()
else:
if word.lower() >= "h":
print(word)
word = ""
else:
word = ""
在这个例子中,它在一定程度上起作用。它消除了“h”之前的任何单词并打印“h”之后的单词,但由于某种原因不打印最后一个单词。我使用什么引号并不重要,即使它在'h'之后,它也不会打印最后一个单词。这是为什么呢?
【问题讨论】:
标签: python if-statement