-3
word = input (" Enter the Word: ")
if word[0].isupper():
    word2 = word
elif word.endswith("s"):
    word2 = word[:-1]
elif word.endswith("ed"):
    word2 = word[:-2]
elif word.endswith("ing"):
    word2 = word[:-3]
if len(word2) <=2:
    print (word)
else:
    print(word2)

错误 - 您的提交引发了 NameError 类型的异常。这发生在您提交的第 11 行。

4

2 回答 2

2

if word[0].isupper():

如果第一个字母不是大写,则word2永远不会被创建。为了防止这种情况,也许这样做:

word2 = ''

在你的条件之前。现在,即使第一个字母是小写的,你也不会得到 a NameError,但word2不会是任何东西。

于 2013-08-22T10:16:49.797 回答
1

当你有一个级联的elifs 时,总是用一个 s 来终止它们else:。您可能认为您已经涵盖了elifs 中的所有可能性,在这种情况下会报告错误。

你的问题是你没有涵盖所有的可能性,所以添加一个else

if word[0].isupper():
    word2 = word
elif word.endswith("s"):
    word2 = word[:-1]
elif word.endswith("ed"):
    word2 = word[:-2]
elif word.endswith("ing"):
    word2 = word[:-3]
else:
    word2 = ""
于 2013-08-22T10:48:20.320 回答