我不完全是 Python 3.x 专业人士,但我正在寻找可以在 Python 3.x 上做的事情,我发现了这一点:
英语中的第三人称单数动词形式以后缀-s来区分,它被添加到不定式形式的词干上:run -> runs。可以给出一组简单的规则如下:
一个。如果动词以 y 结尾,删除它并添加 ies
湾。如果动词以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(这样我就不必根据单词更改数字。