2 回答
TA贡献1725条经验 获得超7个赞
您的码没有按照您的想法行事。现在您正在输入一个数字,将其转换为字符串并将该猜测字符串的第一个字符与不可索引的数字的第一个索引进行比较num[0]。
编辑:您的代码实际上做错了很多事情。您遇到的一个大问题是您tot_correct = 0在 while 循环中进行设置,这意味着它将永远运行并且永远不会完成。
但是退一步说,我认为你把这个问题弄得太复杂了。让我们谈谈我相信你正在尝试做的伪代码。
num_guessed = 0
number_to_guess = 4
total_guesses = 0
while num_guessed < number_to_guess:
# each pass we reset their guess to 0 and get a new random number
guess = 0
# get a new random number here
while guess != random:
# have a user guess the number here
total_guesses += 1 # we can increment their total guesses here too
# it would be a good idea to tell them if their guess is higher or lower
# when they guess it right it will end the loop
num_guessed += 1
# down here we can tell them game over or whatever you want
代码至少应该让您了解如何在不为您解决问题的情况下解决问题。
TA贡献1810条经验 获得超4个赞
我恭敬地不同意之前的评论。循环有可能结束。我明白你为什么tot_correct
在每个循环开始时设置为 0。因为tot_correct
最多增加 4 次,所以有可能为tot_correct == 4
真。
编辑:海报试图计算提供的正确位数。因此,如果要猜测的数字是“1234”并且用户输入“1564”,则发布者希望代码返回“2”以指示“1”和“4”是正确的数字。这就像游戏策划,玩家必须猜测正确的颜色和颜色的方向。但是,如果在错误位置添加了正确数字,此代码不会通知用户,仅当正确数字位于正确位置时才通知用户。
但是,他是正确的,您的错误在于您对num[<index>]
. num
是一个整数,因此您无法对其进行索引,因此“整数不可下标”。num
需要是一个字符串才能对字符进行索引。
编辑:guess
已经是一个没有调用的字符串,str()
因为返回的input()
是一个字符串
需要考虑的一些事项:您是否希望您的用户知道他们需要一个 4 位数字?如果添加了空格怎么办?目前您的代码不会删除空格。如果您正在寻找“6543”作为幻数,而我输入“6543”,您的解决方案将无法识别我的答案是正确的。
添加回答
举报