Как иметь несколько строк в одном входе для печати в одну строку? - PullRequest
0 голосов
/ 25 февраля 2019

Я не уверен, как заставить этот код печатать несколько входов во множественном числе.Например, если я введу ввод «одно существительное, одно существительное, одно существительное», он будет напечатан как «одно существительное, одно существительное, множественное существительное».По какой-то причине только последняя строка становится множественной.Как я могу заставить его распечатать «множественное число существительное, множественное число существительное, множественное число существительное?»

def double(noun):
    if noun.endswith("ey"):
        return noun + "s"    
    elif noun.endswith("y"):
        return noun[:-1] + "ies" 
    elif noun.endswith("ch"): 
        return noun + "es" 
    else:
        return noun + "s" 
noun = input("type in here")
print (double(noun))

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

input() вернет всю строку , введенную пользователем.То есть, если пользователь вводит bird, cat, dog, ваша функция plural получит строку "bird, cat, dog" вместо того, чтобы вызываться с отдельными строками "bird", "cat" и "dog" по отдельности.

Вам нужно токенизировать вашу входную строку.Типичный способ сделать это - использовать str.split()str.strip() для удаления начальных и конечных пробелов):

nouns = input("type in here").split(",")
for noun in nouns:
    print(plural(noun.strip()))

Или, если вы хотите, чтобы все результаты были разделены запятыми инапечатано в одну строку:

nouns = input("type in here").split(",")
print(", ".join((plural(noun.strip()) for noun in nouns)))
0 голосов
/ 25 февраля 2019

Использование str.split:

def double(nouns):
    l = []
    for noun in nouns.split(', '):
        if noun.endswith("ey"):
            l.append(noun + "s")   
        elif noun.endswith("y"):
            l.append(noun[:-1] + "ies")
        elif noun.endswith("ch"): 
            l.append(noun + "es")
        else:
            l.append(noun + "s")
    return ', '.join(l)
noun = input("type in here")
print (plural(noun))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...