Как получить мой (если «вход» в списке), чтобы проверить каждую букву ввода, а не только первую букву ввода? - PullRequest
0 голосов
/ 07 октября 2018

Как мне заставить мой (если «вход» в списке) проверять каждую букву ввода, а не только первую букву ввода?

Теперь это мой код:

alphabet = "abcdefghijklmnopqrstuvwxyzæø˚a ?"

my_list=list(alphabet)
n= input()



def textis():
for word in n.split():
    if word in my_list:
      print(word)
    else:
        x=word.replace(n,"?")
        print (x)



textis()

, но он проверяет только первую букву ввода.Я хочу, чтобы он проверял каждую букву ввода и заменял те, которых нет в списке, на «?», И снова печатал ввод с изменениями «?»в предложении.Так что, если вход есть, привет, Меня зовут, вывод должен быть привет имя.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Ваша функция будет работать без изменений.когда вы n.split() генерируете список слов, n.split() == ['hello', 'My', 'name', 'Is'], поэтому, когда вы повторяете for word in n.split(): if word in my_list, вы сравниваете такие слова, как name с отдельными буквами в my_list, вы никогда не получите совпадения.вместо этого вы должны использовать другой уровень вложенности, for i in word, тогда он будет работать!(Также нет необходимости создавать список из alphabet для этого случая, вы можете использовать его как есть)

alphabet = "abcdefghijklmnopqrstuvwxyzæø˚a ?"

n= input()

def textis():
    for word in n.split():
        for i in word:
            if i in alphabet:
                pass
            else:
                word = word.replace(i,"?")
        print(word) 
textis()

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

s = input('Enter a word: ')
for i in s:
    if i not in alphabet:
        s = s.replace(i, '?')
# hello ?y name ?is
0 голосов
/ 07 октября 2018

Вот проблемы:

  • Вам необходимо передать аргументы в функции.
  • Вам нужно проверять каждую букву в слове вместо проверки и изменения всего слова.

Я сделал новую переменную и внес изменения в эту переменную, а затем возвратил эту переменную.

alphabet = "abcdefghijklmnopqrstuvwxyzæø˚a ?"

my_list = list(alphabet)
n = input()

def textis(n, my_list):
  new = ''
  for letter in n:
    if letter in my_list:
      new += letter
    else:
      new += "?"
  return new

print(textis(n, my_list))
...