I'm writing a function that must pluralize the word. For word starting with capital Z -> Zulma my output should be
Zulma --> {'plural': 'Zulma', 'status': 'proper_noun'}
whereas mine is:
Zulma --> {'plural': 'Zulmas', 'status': 'success'}
There is a mistake in the code in last elif or is last else
In two attachments I enclose .txt file and all question.
def pluralize(word):
wordsStorage = []
x = ''
word_in_plural = ''
with open("proper_nouns.txt", "r") as file:
wordsStorage = file.readlines()
file.close()
for i in range(len(wordsStorage)):
wordsStorage[i] = wordsStorage[i][:-1]
if word == '':
x = 'empty_string'
word_in_plural = 'plural'
return {word_in_plural: '', "status": x}
elif word[-1] == 's':
word_in_plural = word
x = 'already_in_plural'
return {word_in_plural: word, "status": x}
elif word.lower() in wordsStorage:
word_in_plural = word
x = 'proper_noun'
return {word_in_plural: word, "status": x}
else:
if word[-1] == 'a' or word[-1] == 'e' or word[-1] == 'i' or word[-1] == 'o' or word[-1] == 'u':
word_in_plural = word 's'
elif word[-1] == 'y' and word[-2] != 'a' and word[-2] != 'o' and word[-2] != 'i' and word[-2] != 'e' and word[-2] != 'u':
word_in_plural = word[:-1] 'ies'
elif word[-1] == 'f':
word_in_plural = word[:-1] 'ves'
elif word[-2:] == 'sh' or word[-2:] == 'ch' or word[-2:] == 'z':
word_in_plural = word 'es'
else:
word_in_plural = word 's'
x = "success"
return {"plural": word_in_plural, "status": x}
#pass
TEST_CASES = """
Zulma""".split('\n')
if __name__ == '__main__':
for test_noun in TEST_CASES:
print(test_noun,'-->',pluralize(test_noun))
print('----')
CodePudding user response:
I think it's enough to delete:
for i in range(len(wordsStorage)):
wordsStorage[i] = wordsStorage[i][:-1]
This loop overwrites every word within the wordsStorage with the word without its last letter. For example, zulma is converted to zulm.
Therefore word.lower() in wordsStorage is false, in case word contains "zulma", because "zulm" is in the list.
CodePudding user response:
https://drive.google.com/file/d/1E1iXVja-aUqmUhAFVOeTT5GjrbdM_bO4/view?usp=sharing
That's link for proper_nouns.txt file
