总猜测计数未更新

时间:2019-04-04 23:13:10

标签: python

我是编码的初学者,我正在学习python并决定制作一个随机数猜测游戏。一切都很好,但是我想添加一个猜测计数器,但我不确定为什么总不会更新。

def random_num():
    guess = int(input("Guess the number, it is between 1-100: "))
    total = 0
    if guess > random_number:
        print("\nLower")
        total += 1
        random_num()
    elif guess < random_number:
        print("\nHigher")
        total += 1
        random_num()
    elif guess == random_number:
        print("\nYou win")
        print("You took " + str(total) + " guesses to get the correct number.")

输出总计为0,但这是不正确的。

2 个答案:

答案 0 :(得分:2)

问题在于,每次调用random_num时,总总是声明total等于0。

您需要找到一种方法来保存total的值。

提示:将其用作全局变量。更好的解决方案是将total作为值传递给参数。

答案 1 :(得分:0)

import random


num = random.randint(1, 12)

user = int(input('Please enter a number from 1 to 100:  '))

counter = 1
while user != num:
    if user > num:
        print('Too high!')
        counter += 1
    else:
        print('Too low!')
        counter += 1
    user = int(input('Please try again:  '))

print('You got it! The number is ' + str(num) + ' and it took you ' + str(counter) + ' tries.') 

这是您想要的简单方法。注意计数器在while循环和if-else语句中的工作方式。我们已经知道用户至少会猜一个,所以counter = 1。每当用户输入错误时(仅在if-else语句中发生),我们就使用counter += 1。使用While语句可确保我们仅在用户错误的情况下才添加到计数器。