如何让我的(如果在列表中"input")检查输入的每个字母,而不仅仅是输入的第一个字母?



如何让我(如果列表中的"输入"(检查输入的每个字母,而不仅仅是输入的第一个字母?

这是我现在的代码:

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

但它只检查输入的第一个字母。我希望它检查每个输入字母并将列表中没有的字母更改为"?",然后再次打印输入,并在句子中更改"?"。因此,如果输入是,hello My Name Is,则输出应该是hello ?y name ?s。

以下是问题:

  • 您需要在函数中传入参数。
  • 您需要检查单词
  • 中的每个字母,而不是检查和更改整个单词。

我所做的是创建一个新变量并对该变量进行更改,然后返回此变量。

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

您的函数将按原样工作,只需稍作修改。 当您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

相关内容

最新更新