我不是一个Python 3.x专业人士,但我在Python 3.x上找到了要做的事情,我发现了这个:
英语中的第三人称单数动词形式用后缀-s来区分,后缀-s被添加到不定式形式的词干中:run - >运行。可以按如下方式给出一套简单的规则:
一个。如果动词以y结尾,则将其删除并添加ies
湾如果动词以o,ch,s,sh,x或z结尾,则添加es
℃。默认情况下只需添加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'即卡车 它将输出
lorries
lorrys
另外我如何制作代码中的数字是单词中的字母数减1(只是因为我不必根据单词更改数字。
答案 0 :(得分:3)
更改代码
<强>码强>
def make_3sg_form():
Word = input('Enter a word: ')
if Word.endswith('y'):
New_word=Word[:-1]+'ies'
elif Word.endswith(('o', 'ch', 's', 'sh', 'x' ,'z')):
New_word=Word+'es'
else:
New_word=Word+'s'
print(New_word)
make_3sg_form()
<强>输出:强>
Enter a word: lorry
lorries
Enter a word: looo
loooes
Enter a word: lklk
lklks
备注:强>
您应该使用if elif and else
而非if
结束时不需要or
,因为它使用or
功能进行默认检查
答案 1 :(得分:2)
您需要使用if
elif
块。多次测试都是正确的,您可以自己做几个测试。