- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是编码的新手,我正在为我的第一个代码而苦苦挣扎。
我想创建一个猜词游戏,让用户一次猜测几个字母的字符和位置。我坚持的步骤可以总结为:
我似乎无法找到一种方法来做到这一点。这是我到目前为止所拥有的。我想自己继续剩下的代码,但是,如果我不能通过第一步,那将是非常困难的!
def compute_score(guess,position,word):
""" Doc string """
score = 0
right_position_value = 100
wrong_position_value = 20
guess = input()
position = pos for char in guess
word_position = pos for char in word
for char in word:
if char in guess:
score += 10
if position == word_position:
score += 50
else:
score += 0
return score
guess_1 = input('guess the first 2 letters corresponding to letters 1 and2 of the unkown word!: ')
print('Your guess and score were: ', guess, score)
最佳答案
您比您想象的更接近完成第 1 步。您已经有了输入猜测的代码,现在您只需要执行相同的操作来输入所选单词。不过,您可能想要更改输入消息:
word = input('Choose your unknown word: ')
guess = input('guess the first 2 letters corresponding to letters 1 and2 of the unkown word!: ')
这就是第 1 步!
第 2 步和第 3 步需要更多工作,因为您的 compute_score
函数存在一些问题。第一个问题是您立即覆盖了您传入的一些参数的值:
def compute_score(guess,position,word):
""" Doc string """
score = 0
right_position_value = 100
wrong_position_value = 20
guess = input() <-- This will prompt the user for input a third time, and then
overwrite their initial guess with this one.
position = pos for char in guess <-- Same problem here
word_position = pos for char in word
如果您甚至在使用这些变量之前就重新分配它们,那么首先就没有必要将它们作为函数的参数。但即使你修复了这个问题,你仍然会得到一个错误:
word_position = pos for char in word
我明白你想做什么,但如果你要在下面的 for
循环中遍历单词的每个字母,你最好只计算循环中的每个字母也是如此。您可以在 for
循环中使用一个巧妙的小技巧来做到这一点:
for idx, char in enumerate(word):
这不仅为您提供了单词的每个字母 (char
),还为您提供了循环的迭代次数 (idx
)。例如:
>>> word = 'shape'
>>> for idx, char in enumerate(word):
... print(idx)
...
0
1
2
3
4
您可以使用此迭代计数值作为字母的位置,希望这能帮助您弄清楚第 3 步(诚然,我仍然不太确定 position
参数的用途或位置猜测规则起作用)
对于第 2 步,您也非常接近。目前您正在检查两个字母的猜测是否在所选单词中的任何地方。要只检查前 2 个字母,您可以使用单词的子字符串。在 Python 中,这是通过在检查期间“切片”除了单词的前 2 个字母之外的所有字母来完成的:
for char in word:
if char in guess[:2]:
score += 10
然后开始吧。
但是,我只是想让您知道您的代码中还有一些其他问题,主要问题是最后一个中的 guess
和 score
变量line 没有在任何地方定义,并且您实际上从未调用过 compute_score
函数。在你的最后一行,你应该这样调用它:
word = input('Choose your unknown word: ')
guess = input('guess the first 2 letters corresponding to letters 1 and2 of the unkown word!: ')
print('Your guess and score were: ', guess, calculate_score(guess, 0, word))
在示例中,我刚刚将 0
作为 position
传递,因为我仍然不知道游戏的位置规则。不过,如果您提供更详细的解释,我可以对此进行编辑。
关于python - 猜测字符串中正确的字符和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45611982/
我的问题在于处理大型 CSV 文件中的数据。 我正在寻找基于在该列中找到的值来确定(即猜测)该列的数据类型的最有效方法。我可能正在处理非常困惑的数据。因此,该算法应该具有一定的容错性。 这是一个例子:
我正在开发一个基于 map 的网络应用程序,我想为用户提供“使用当前位置”的功能 我可以轻松检查地理位置 api 的可用性,如下所示: if (navigator && navigator.geolo
我有一大组日期时间字符串,可以放心地假设它们的格式都相同。例如,我可能有一组日期“7/1/13 0:45”、“5/2/13 6:21”、“7/15/13 1:24”、“7/9/13 12” :41",
我正在尝试对是否可以接收 C2DM 消息进行最佳猜测。 我创建了一个应用程序,它依赖于在物理上无法访问时将信息推送到手机。我知道 C2DM 不能保证传递,但我至少想知道何时可以传递消息;如果不是,我们
我正在编写一个系统,以便用户可以编辑他发布的内容。简化它是一个存储在数据库中的文本区域/输入字段和一个检索它的页面。问题是,我认为编码不正确,因为字符串存储在数据库中,如“É”或其他东西(phpmya
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
只是好奇,但匹配 Guid 的概率是多少? 从 SQL 服务器说一个 Guid:5AC7E650-CFC3-4534-803C-E7E5BBE29B3D 它是阶乘吗?:(36 * 32)! = (11
这个问题已经有答案了: Guessing algorithm does not seem to work, guessing number by Python (3 个回答) 已关闭 5 年前。 程序
我正在创建一个非常简单的计算器,但我需要它在每次击键时进行更新。我似乎找不到该特定类别中的任何内容。有人能指出我正确的方向吗? 我正在寻找类似 A*1.325 + B*3.76 的内容,其中 B 是下
环顾四周this似乎是最接近我的问题的答案。然而它会导致其他问题...... 这是我的情况: $element.insertBefore($container); 此行有一个警告,指出 insertB
当我收到此页面时 http://booking.airasia.com/css/AKBase/Cultures/en-GB/far-min.css与 Node 的 http , toString方法给
我在代码中发现了这一点,但不知道哪个实例接收到。 var guess = require ('myModule1') ('myMmodule2') 最佳答案 看来 myModule1 导出了一个函数,
WARNING: No name was provided for external module 'moment' in output.globals – guessing 'momentImpor
我是一名优秀的程序员,十分优秀!