Python 3.4 endswith()
Python 3.4 endswith()
我不完全是 Python 3.x 专业人士,但我在 Python 3.x 上找东西做,我发现了这个:
英语中的第三人称单数动词形式由后缀-s 区分,它被添加到不定式形式的词干:运行 -> 运行s。可以给出一组简单的规则如下:
一个。如果动词以y结尾,去掉它并加上ies
b。如果动词以 o、ch、s、sh、x 或 z 结尾,加 es
c。默认情况下只需添加 s
你在这个练习中的任务是定义一个函数 make_3sg_form() 给一个不定式形式的动词 returns 它的第三人称单数形式。使用 try、brush、运行 和 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(这样我就不必根据单词更改数字。
更改您的代码
代码:
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
endswith 中不需要 or
,因为它默认使用 or
功能进行检查
您需要使用 if
elif
个积木。多项测试可能是正确的,您允许自己进行其中的多项测试。
我不完全是 Python 3.x 专业人士,但我在 Python 3.x 上找东西做,我发现了这个:
英语中的第三人称单数动词形式由后缀-s 区分,它被添加到不定式形式的词干:运行 -> 运行s。可以给出一组简单的规则如下:
一个。如果动词以y结尾,去掉它并加上ies
b。如果动词以 o、ch、s、sh、x 或 z 结尾,加 es
c。默认情况下只需添加 s
你在这个练习中的任务是定义一个函数 make_3sg_form() 给一个不定式形式的动词 returns 它的第三人称单数形式。使用 try、brush、运行 和 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(这样我就不必根据单词更改数字。
更改您的代码
代码:
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
endswith 中不需要 or
,因为它默认使用 or
功能进行检查
您需要使用 if
elif
个积木。多项测试可能是正确的,您允许自己进行其中的多项测试。