如何在while循环中的每个循环后从字符串中删除一个字符

爱洛杰斯

我正在尝试打印一个包含字母表中字母的字符串。在用户猜出每个字母后,该猜出的字母将从字母表中删除,然后打印在控制台中以显示哪些字母尚未被猜出。

到目前为止,我已经试过remove()translate()filter()每次我尝试时,都会成功删除该字母,但是当需要删除另一个字母时,第一个字母会重新出现在字符串中,而第二个字母现在已被删除。基本上,这些字母不会被移除,只会在那个循环中消失。

背景信息:我正在用 python3 制作一个刽子手应用程序。因此,我遇到问题的部分代码位于函数中的 while 循环中。我正在用 python3 制作一个刽子手应用程序。因此,我遇到问题的部分代码位于函数中的 while 循环中。

alphabet = "abcdefghijklmnopqrstuvwxyz"
guess = " "

print("These letters haven't been guessed yet: " + alphabet.translate({ord(guess): None}))

预期结果:

(请注意,在第二次输入后不会再次出现前一个。)

guess = input("Enter a letter: ")
Enter letter: a
These letters haven't been guessed yet: bcdefghi

guess = input("Enter a letter: ")
Enter letter: h
These letters haven't been guessed yet: bcdefgi

实际结果:(请注意,在用户输入 'h' 后,字母 'a' 再次出现。)

guess = input("Enter a letter: ")
Enter letter: a
These letters haven't been guessed yet: bcdefghi

guess = input("Enter a letter: ")
Enter letter: h
These letters haven't been guessed yet: abcdefgi
保罗·罗德里戈·马丁斯

您可以为此使用集合。首先,您创建一个包含字母表中所有字母的集合。此外,您想跟踪哪些是另一组中的猜测词。然后,每次用户猜出某个字母时,您就将其添加到猜测集中。最后,您只需打印alphabet - guessed. 最后,我只是''.join为了更好的输出格式。

alphabet = set("abcdefghijklmnopqrstuvwxyz")
guessed = set()

guess = "a"
guessed.add(guess)

print("These letters haven't been guessed yet: " + str(alphabet - guessed))
#Output: These letters haven't been guessed yet: {'c', 'd', 'y', 'r', 'i', 'h', 'g', 'o', 'q', 'x', 'v', 'k', 'j', 'z', 'p', 'n', 'u', 'm', 'l', 'b', 't', 'w', 'e', 'f', 's'}

print("These letters haven't been guessed yet: " + ''.join(alphabet - guessed))
#Output: These letters haven't been guessed yet: cdyrihgoqxvkjzpnumlbtwefs

从@MrFuppes 更新:使用该函数sorted按字母顺序打印集合中的元素

print("These letters haven't been guessed yet: " + ''.join(sorted(alphabet - guessed)))
#Output: These letters haven't been guessed yet: bcdefghijklmnopqrstuvwxyz

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从循环中生成的字符串中删除最后一个字符

在while循环中返回一个字符串

在getchar()循环中时如何检测C字符串中的最后一个字符

在一个循环中逐个字符地遍历一个字符串

将每个对象中的字符串循环为一个字符串

展开在循环中向每个元素附加一个字符串的数组元素

如何在Golang中删除字符串的最后一个字符?

For 循环一个字符串

for循环中的变量是一个字符串

PHP:在foreach循环中连接一个字符串

如何在列表中每个字符串的末尾添加一个字符?

如何从与另一个字符串中的任何字符匹配的字符串中删除每个字符

循环一次在一个字符中创建字符串

在for循环中为一个字符串使用字符串替换方法

使用 for 循环在一个字符串中插入多个字符串

在PHP中循环时缺少最后一个字符串字符

如何在循环中特定行的末尾附加一个字符?

如何在循环中从每一列获取值并将它们组合成一个字符串

使用 for 循环在文件夹的每个文件中查找一个字符串

如何从字符串列表中的每个字符串中删除最后一个字符

如何向列表中的每个字符串添加一个字符串?

如何在第一个字符后屏蔽字符串

删除数组中每个字符串的最后一个字符(JavaScript)

如何生成一个字符串中的每个字符之间的随机字符?

如果每个字符串中的第一个字符相同,则从数组中的每个字符串中删除第一个字符

如何检查一个字符串变量中的每个字母?

如何在字符串中的每个单词之后添加一个字符?

如何在一行中第一个字符后匹配字符串

如何从IronPyhon中的字符串中删除最后一个字符?