2015-10-09 9 views
3

Я не совсем Python 3.x про но я находил вещи, чтобы сделать на Python 3.x, и я нашел это:Python 3.4 EndsWith()

Третье лицо форма единственного числа глагола в английском языке отличается по суффиксу -s, который добавляется к стеблю инфинитивной формы: run -> run. Простой набор правил может быть приведен следующим образом:

a. Если глагол заканчивается на y, удалите его и добавьте

b. Если глагол оканчивается на o, ch, s, sh, x или z, добавьте es

c. По умолчанию просто добавьте s

Ваша задача в этом упражнении - определить функцию make_3sg_form(), которая задает глагол в инфинитивной форме, возвращает свою особую форму третьего лица. Проверяйте свою функцию словами, такими как try, brush, run и fix. Обратите внимание, однако, что правила должны рассматриваться как эвристические, в том смысле, что вы не должны ожидать, что они будут работать во всех случаях. Совет: Проверьте метод Строки EndsWith()

Так что я создал код носового его, но есть проблема, Heres код:

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() 

Проблема заключается в том, если я делаю слово, заканчивающееся на " у»например, грузовой автомобиль он будет выводить

lorries 
lorrys 

Кроме того, как я делаю это так, то число в коде количество букв в слове минус 1 (именно так, я не должен изменить номер на основе на слово.

+1

Помимо принятого и правильного ответа Vignesh ниже, я заметил, что у вас есть '' y'' как часть третьего блока if. Я упоминаю об этом, потому что некоторые глупые ошибки, которые я создал, являются результатом такой ошибки. Будьте в поиске для них. – msw

ответ

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 модули TEAD справедливого if

нет необходимости or в EndsWith, потому что в проверках по умолчанию с помощью or функциональности

2

Вы должны использовать ifelif блоков. Несколько тестов могут быть правдой, и вы позволяете себе делать несколько из них.