我正在尝试创建一个类似于游戏策划者的简单代码,但使用5位数密码,例如(0 2 5 3 9)。能够生成密码但丢失了关于如何使用用户输入与密码进行比较。任何提示,这就是我所拥有的。
import random
def masterkey():
code = []
i = 0
while i < 5:
digit = random.randint(0,9)
code.append(digit)
i=i+1
print code
counter = 0
while counter < 10:
counter += 1
guess = raw_input("Guess my five digit password: ")
if guess == code:
print "Congrats, you're lucky!"
else:
.....
我知道这不正确但完全丢失了这部分代码。
感谢。
答案 0 :(得分:2)
我们不会为您编写代码,但这里有一些指示可以向您发送正确的方向:
以最简单,最不模糊的方式记下您需要比较的完全。例如,&#34;计算密码中存在的用户输入中的位数&#34; 和&#34;计算输入数字的位数与密码&#34;
研究如何独立完成每个步骤。
一个接一个地在代码中实现这些解决方案。
如果您仍然遇到困难,请回到此处并询问有关您被困的地方的具体问题。 (您如何获得与预期不同的结果,或者您收到的错误)
我们将等待:)
答案 1 :(得分:0)
使用所有while
循环并不是很好。 for
循环不仅可以保存代码,还可以使一个错误更难引入。在您真正需要时保存while
循环
import random
def masterkey():
code = [random.randint(0,9) for i in range(5)]
for counter in range(10):
guess = raw_input("Guess my five digit password: ")
# guess is string, so need to convert it to a list of ints
guess = [int(c) for c in guess]
...
或者,您可以通过首先将初始代码作为字符串将猜测作为字符串。这是一个更强大的功能,因为用户只需输入非数字就不会使程序崩溃。
import random
def masterkey():
code = "".join(random.choice("0123456789") for i in range(5))
for counter in range(10):
guess = raw_input("Guess my five digit password: ")
...
最后提示:
如果你认为猜测应该等于代码:
if guess == code:
print "Congrats, you're lucky!"
else:
print repr(guess), "!=", repr(code)
会很快告诉你为什么不