python - 在python中猜测单词中的字母
问题描述
我是 python 的初学者,我正在尝试编写一个程序来猜测一个单词中的字母(这里我使用了 'coconut' )。猜测没有限制。如果每次猜测都是正确的,我想将字母的位置显示为另一个('guess_map')。
所以我guess_map
用相同的单词长度定义了列表。然后使用 for 循环,我用单词检查猜测的输入并替换列表“guess_map”中的相应元素。
但后来我发现它不适用于重复的字母。例如'c'。该代码仅考虑单词中的第一个“c”。我不知道我在哪里犯了错误。任何人都可以帮忙吗?
word = 'coconut'
reference = list(word)
number_letters = len(reference)
guess_map = ['-']*number_letters
guess = input('Guess the letter')
for let in reference:
if let == guess:
ref_ind = reference.index(let)
guess_map[ref_ind] = guess
print(guess_map)
解决方案
错误在ref_ind = reference.index(let)
. 这只会找到第一次出现,即使循环找到了所有这些。
这个版本的程序enumerate
每次都用来给你正确的索引。
word = 'coconut'
reference = list(word)
final = reference[:]
number_letters = len(reference)
guess_map = ['-']*number_letters
while guess_map != final:
guess = input('Guess the letter')
for ref_ind, let in enumerate(reference):
if let == guess:
guess_map[ref_ind] = guess
print(guess_map)
print("Done")
我冒昧地添加了一个循环,让你一直猜测,直到你做对了。
推荐阅读
- google-cloud-platform - Anthos Service Mesh/Istio CORS 未启用
- sql - SQL Server 解析 JSON 以更新另一个表
- python - 保存后实际图形大小发生变化
- javascript - 记录 EventEmitters 的正确方法是什么?
- c# - C# 以错误的顺序向 Microsoft 团队发送击键
- c# - xamarin android绑定事件
- r - 在 R 中应用涉及两个数据框列的 if else 语句
- java - 为什么当我尝试重新分配一个变量时我收到错误,“删除这个无用的分配给局部变量”
- kotlin - Kotlin 检查 Collection 是否既不为空也不为空
- swift - 如何在 Swift 的 UICollectionView 中一行显示 2 个单元格?