Разбивая строковые буквы на нечетные и четные символы - PullRequest
0 голосов
/ 03 апреля 2019

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

Теперь я провел несколько испытаний, в которых строка была жестко закодирована в wordStr, и остальная часть процесса, кажется, проходит гладко под этим.Поэтому я чувствую, что мне нужно добавить что-то другое, чтобы программа могла зарегистрировать пользовательский ввод.Вот как выглядит код:

def oddEvenWord():

    #Objective: program will print out the seperate characters included within a string under where they fall placement wise, odd or even

    wordstr = eval(input("Please enter a word to be broken apart into odd and even characters:"))

    even_letters = ""
    odd_letters = ""
    lword = len(word)
    index = 0


    for index in range(0,len(word)):
        if int(index) % 2 == 0:
            even_letters += word[index]

        else:
            odd_letters += word[index]

    print(list(even_letters), end = ' ')
    print(list(odd_letters), end = ' ')

oddEvenWord()

Как я уже говорил выше, программа должна иметь возможность различать и отделять нечетные символы от четных символов в слове, введенном пользователем, но модуль не распознаетэто как допустимая строка, а также делает недействительным обратный вызов.Буду признателен, если кто-нибудь даст мне несколько советов в этом отделе

Ответы [ 2 ]

0 голосов
/ 04 апреля 2019

Чтобы получить несколько слов с пробелами, вы можете использовать raw_input()

Как показано ниже,

word = raw_input("Please enter a word to be broken apart into odd and even characters:")

В противном случае будьте внимательны при наборе входной строки, которую не забудьте набрать "" И как @blhsing упомянул в своем ответе, вы должны удалить eval и заменить wordstr на word

И даже вы можете выполнить операцию в python одним вкладышем следующим образом:

Любой из одного вкладыша

a=lambda x:[[x[o] for o in range(len(x)-1) if not o%2],[x[e] for e in range(len(x)-1) if e%2 ]]

или

a=lambda x:[[o for o in x[::2]],[e for e in x[1::2]  ]]

затем

word = raw_input("Please enter a word to be broken apart into odd and even characters:")
print(a(word))
0 голосов
/ 03 апреля 2019

Вызывая eval, вы обрабатываете входную строку как код Python, а это не так, поэтому не вызывайте eval.Вы также должны назвать получающую переменную word вместо wordstr, чтобы она соответствовала остальной части вашего кода:

Изменение:

wordstr = eval(input("Please enter a word to be broken apart into odd and even characters:"))

на:

word = input("Please enter a word to be broken apart into odd and even characters:")
...