0

我是编程新手,我很难在循环中累积

    wrong_guesses=0
    formSoFar=''
    game_over=False
    while (game_over==False and wrong_guesses<max_guesses):
        guess1= raw_input("Please enter an operation symbol or digit: ")
        if (guess1 in formula):
            print "Your guess is correct!"
            for i in range (len(formula)):
                if (randomFormula[i] == guess1):
                    formSoFar += formula[i]
                else:
                    formSoFar+= "-"
            print "The formula you have guessed so far is: ",formSoFar

假设用户试图猜测的方程是 1+2+3 并且他们的第一次猜测是 2 形式SoFar 是 --2-- 但他们第二次猜测它应该显示第一次猜测,所以如果他们猜测 1 它应该是 1-2-- 但此代码正在打印--2--1-2-- 请帮助 :(

4

1 回答 1

2

在每个循环中,您将字符附加到formSoFar. 您想要做的是让它以一些值开始并随时编辑它:

formSoFar = ['-'] * len(formula)

while not game_over and wrong_guesses < max_guesses:
    guess = raw_input(...)
    if guess in formula:
        for i, c in enumerate(formula):
            if c == guess:
                formSoFar[i] = c

        print 'The formula you have guessed so far is:', ''.join(formSoFar)

另请注意,您不需要()s 在if语句中。那是 C/C++/Java 的事情。

于 2014-11-30T20:37:23.207 回答