私は正確には Python 3.x のプロではありませんが、Python 3.x でやるべきことを探していて、これを見つけました:
英語の動詞の三人称単数形は、接尾辞 -s によって区別されます。これは、不定形の語幹に追加されます: run -> runs. 簡単なルールのセットは、次のように指定できます。
を。動詞が y で終わる場合は、それを削除して ies を追加します
b. 動詞が o、ch、s、sh、x、または z で終わる場合は、es を追加します
c. デフォルトでは s を追加するだけです
この演習でのタスクは、不定形の動詞を指定して三人称単数形を返す関数 make_3sg_form() を定義することです。try、brush、run、fix などの言葉で関数をテストします。ただし、すべてのケースで機能するとは限らないという意味で、ルールはヒューリスティックと見なす必要があることに注意してください。ヒント: 文字列メソッドの endwith() を確認してください。
そのため、コードを作成しましたが、問題があります。コードは次のとおりです。
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を引いたものになるようにするにはどうすればよいですか(単語に基づいて数字を変更する必要がないように.