自学python。在每一轮之后分数都会增加

自学python。在每一轮之后分数都会增加,python,python-3.x,Python,Python 3.x,TL:DR试图建立一个评分系统,当你得到正确答案时,它似乎不会上升 正如标题所说,我正在自学python,因此这只是我编写的第二段代码(提示我为什么学习python)。从语法到如何更好地评论,我非常乐意接受批评。说到这里,让我们开始讨论我的问题 这是一个小小的猜谜游戏。我正在读的这本书教授了“猜测”和后续代码。我的问题在于代码的一个小方面。评分系统不会增加 我在for循环中设置了名为games的代码,然后尝试在每一轮开始时显示该代码,并进行正确的猜测。但是,在前几轮中,它将显示0,然后显示2(或

TL:DR试图建立一个评分系统,当你得到正确答案时,它似乎不会上升

正如标题所说,我正在自学python,因此这只是我编写的第二段代码(提示我为什么学习python)。从语法到如何更好地评论,我非常乐意接受批评。说到这里,让我们开始讨论我的问题

这是一个小小的猜谜游戏。我正在读的这本书教授了“猜测”和后续代码。我的问题在于代码的一个小方面。评分系统不会增加

我在for循环中设置了名为games的代码,然后尝试在每一轮开始时显示该代码,并进行正确的猜测。但是,在前几轮中,它将显示0,然后显示2(或者我认为您当前的分数是多少…)。我想问题是我在if语句中调用了score+1 int,但是我移动了代码,无法理解它

我知道它不漂亮!也有一些错误(游戏的数量不是你输入的)。现在我只在处理评分系统

         #this is a guess the number game.
    import random

    #Get's user's name
    print("Hello. Welcome to Print's guessing game. Please enter your name: ")
    userName = input()

    #askes if they are ready
    print("Are you ready to play " + userName + "?")
    ready = input().lower()

    if ready == 'yes' :
        print("Let's get started")
    else:
        while ready != 'yes':
            print("Let me know when you are ready")
            ready = input().lower()

                            #Game start


    #number of games       
    games = int(input("How many games would you like to play?"))

    if games >= 1:
        print("Let's get started")


        for games in range (int(games), 1, -1):
            while games != 1:     

                print("I am thinking of a number between 1 and 20 ")
                secretNumber = random.randint(1, 20)
                score = 0
                print("Current score: " + str(score))
                print("Debug: " + str(secretNumber))

                for guessTaken in range (7, 1, -1):
                    print("you have " + str(guessTaken - 1 ) + " guesses left")
                    guess = int(input())
                    if guess < secretNumber:
                        print("Your guess is to low. Please guess again")

                    elif guess > secretNumber:
                        print("Your guess is too high. Maybe something a little lower?")

                    else:
                        break # This conditon is for the right guess.



                if guess == secretNumber:
                    print("good Job " + userName + "! you guessed the number right!")
                    score = int(score + 1)
                    print("your score is " + str(score))
                    games = int(games - 1)

                else:
                    print("Nope, the number I was thinking of was " + str(secretNumber))
                print("you have " + str(games) + " games left")

    elif games == 0:
        while games == 0:
            print("Would you like to exit? Yes or No ")
            exit = input().lower()
            if exit == 'yes':
                quit()
            else:
               games = int(input("How many games would you like to play?"))
    else:
        print("wtf")
这是一个猜数字游戏。 随机输入 #获取用户的用户名 print(“你好。欢迎参加print的猜谜游戏。请输入您的姓名:”) 用户名=输入() #问他们是否准备好了 打印(“您准备好玩“+用户名+”?”) ready=input().lower() 如果准备就绪==“是”: 打印(“让我们开始吧”) 其他: 准备好了!='是的: 打印(“准备好后告诉我”) ready=input().lower() #比赛开始 #比赛次数 games=int(输入(“您想玩多少游戏?”) 如果游戏>=1: 打印(“让我们开始吧”) 对于范围内的游戏(int(游戏),1,-1): 玩游戏时!=1: 打印(“我想到的是一个介于1和20之间的数字”) secretNumber=random.randint(1,20) 分数=0 打印(“当前分数:+str(分数)) 打印(“调试:+str(secretNumber)) 对于在范围(7,1,-1)内进行的猜测: 打印(“您有”+str(猜测-1)+“猜测剩余”) guess=int(输入()) 如果guess秘密编号: 打印(“你的猜测太高了,可能是低一点吧?”) 其他: 打破这一状况是正确的猜测。 如果guess==secretNumber: 打印(“干得好”+用户名+“!你猜对数字了!”) 分数=整数(分数+1) 打印(“您的分数为”+str(分数)) games=int(games-1) 其他: 打印(“不,我想的数字是”+str(secretNumber)) 打印(“您有”+str(游戏)+“游戏剩余”) elif games==0: 当games==0时: 打印(“是否要退出?是或否”) exit=input().lower() 如果退出==“是”: 退出 其他: games=int(输入(“您想玩多少游戏?”) 其他: 印刷品(“wtf”)
每次代码通过while循环时,score变量都被初始化为零。如果希望它跟踪所有游戏的总分,请在打印
后立即初始化它(“让我们开始”)
。这将重置他们的分数,只要他们告诉你他们想玩多少场比赛


如果在他们退出您的程序之前,您不希望他们的分数重置,则您必须在程序开始时对其进行初始化。通过您的
导入random
可以很好地工作。

每次代码通过while循环时,您的score变量都被初始化为零。如果希望它跟踪所有游戏的总分,请在打印
后立即初始化它(“让我们开始”)
。这将重置他们的分数,只要他们告诉你他们想玩多少场比赛


如果在他们退出您的程序之前,您不希望他们的分数重置,则您必须在程序开始时对其进行初始化。通过你的
import random
进行升级会很好。

将此->分数=0移动到循环之前将此->分数=0移动到循环之前就是这样!非常感谢你!由于它在for循环之后,while循环一直运行,直到games变量等于1,所以它才返回到0。根据游戏变量的不同,可能会有很多循环。问题是每个循环都会导致您的分数重置为0。为了防止重置,您必须将分数的初始化移到循环之外。就是这样!非常感谢你!由于它在for循环之后,while循环一直运行,直到games变量等于1,所以它才返回到0。根据游戏变量的不同,可能会有很多循环。问题是每个循环都会导致您的分数重置为0。为了防止重置,必须将分数的初始化移到循环之外。