无限循环x反问题

时间:2015-04-21 10:01:48

标签: debugging python-3.x logic counter infinite-loop

您好我的代码有三个问题:

  1. 当我输入" N"对于我的第一个问题,它会出错。
  2. 在"再次运行后,我进入了无限循环?"输入
  3. 我的计数器没有正确添加,所以即使我得到正确或错误的答案,它也不算数。
  4. 请帮帮我。

    以下是我的代码:

        #Introduction-ish print statement
    print("In this application, we will be playing a coin coss game.  For as "\
          "many times as you like, we will continue playing the game.")
    
    
    #def function1():
    response=str(input("\nWould you like to run this application?  Type 'Y' to run "\
                   "or 'N' to not run: "))
    if response=="N":
        print("\nOutcome of Game:")
        print("You did not run the application."\
              "  Nothing happened.  You did not play the game.")
    
    
    #Counters
    programCounter=0
    hCounter=0
    tCounter=0
    guessCountR=0
    guessCountW=0
    
    #User Input
    
    if response=="Y":
    
        funcGuess=str(input("\nPick one- Type 'H' for Heads or 'T' for Tails: "))
    
    #Coins
    
    import random
    
    #number=random.randint(1,2)
    
    while response !="N" and funcGuess=="H" or funcGuess=="T":
        number=random.randint(1,2)
        if number==1:
            number=="Heads"
            hCounter+=1
        else:
                number=="Tails"
                tCounter+=1
        if funcGuess==number:
            guessCountR+=1
        else:
            guessCountW+=1
    
        print(number)
        response=str(input("Run again?"))
        if response=="Y":
            funcGuess=str(input("\nPick one- Type 'H' for Heads or 'T' for Tails: "))
    if response=="N":
        print("\nOutcome of Game:")
        print("You guessed ",programCounter, "time(s).")
        print("You guessed heads",hCounter, "time(s).")
        print("You guessed tails",tCounter, "time(s).")
        print("You guessed correctly",guessCountR, "time(s).")
        print("You guessed incorrectly",guessCountW, "time(s).")
    
    #Guess Count
    guessCount=guessCountR+guessCountW
    
    
    #paste
    
    
    #if response =="Y":
        #function1()
    
    #else:
        #print("\nOutcome of Game:")
        #print("You did not run the application."\
              #"  Nothing happened.  You did not play the game.")
    

    我不介意所有评论。我故意把它们留在那里,但如果有人帮助发现它们有用,请告诉我。

    长篇大论的道歉。

1 个答案:

答案 0 :(得分:0)

问题1:

在第34行,您正在评估名为funcGuess的变量。如果您回答初始问题的“Y”,它只会在第26行定义。

问题2:

while循环无限循环,因为永远不能满足中断条件。无法在循环中为response赋值“N”。此外,请务必将or评估的两边放在括号之间,以便正确评估该行

问题3:

正确的数字和猜测分别分配给变量numberfuncGuessnumber始终为1或2,funcGuess始终为“H”或“T”。因此,funcGuess == number永远不会评估为True