我并不是Python 3.x的专家,但我正在寻找Python 3.x的相关内容,结果发现了这个:
英语中第三人称单数动词形式通过后缀 -s 来区分,该后缀添加在不定式形式的词干上:run -> runs。可以给出一组简单的规则如下:
a. 如果动词以 y 结尾,则去除 y 并添加 ies
b. 如果动词以 o、ch、s、sh、x 或 z 结尾,则添加 es
c. 默认情况下只添加 s
你的任务是定义一个函数 make_3sg_form(),该函数接受一个不定式形式的动词,并返回其第三人称单数形式。使用 try、brush、run 和 fix 等单词测试您的函数。然而,请注意这些规则必须被视为启发式规则,不能期望它们适用于所有情况。提示:查看字符串方法 endswith()
所以我为此创建了代码,但存在问题,以下是代码:
def make_3sg_form():
Word = input('Enter a word: ')
if Word.endswith('y'):
New_word=Word[:+4]+'ies'
print(New_word)
if Word.endswith(('o', 'ch', 's', 'sh', 'x' or 'z')):
New_word=Word[:+4]+'es'
print(New_word)
if Word !=Word.endswith((('o', 'ch', 'y', 's', 'sh', 'x' or 'z'))):
New_word=Word[:+10]+'s'
print(New_word)
make_3sg_form()
问题在于,如果我输入以“y”结尾的单词,比如lorry,它会输出
lorries
lorrys
还有,我该如何使代码中的数字为单词字母数减1(这样我就不必根据单词改变数字了)。
if
块中有一个'y'
。我提到这一点是因为我曾经因为这种错误而犯过一些愚蠢的错误。要时刻保持警惕。 - msw