Py学习  »  Python

函数中的输入——Python

Dan • 3 年前 • 491 次点击  

我创建了一个随机选择一个数字的游戏,用户必须猜测这个数字。通常情况下,这很容易,但我需要使用函数来实现。

我在下面链接了我的代码。为了解释:

get_num() 函数给我们一个数字(应该是1到1000,但我有1到10用于故障排除)

询问用户() 是一种提示用户输入数字的输入。

猜一猜 用来确定你的数字是过高还是过低。

num_gues() 将跟踪用户猜测的次数。但它还没有完成,你可以暂时忽略这一点。

我在跑步 PyCharm社区版2021.3.2 ,记录在案。

问题是: 该程序运行良好,只是无法判断数字是太大还是太小。当你一直猜同一个数字,比如说“2”,它会一直说这个数字太高太低。为什么?我有完美的If语句。如果你看截图,正确的数字是7,我有正确的If语句。然而,它仍然认为2比7高。为什么?

这里有一张图片作为证明:

enter image description here

以下是代码:

def main():
    answer = get_num()
    guess = ask_user()
    num_guesses = 0
    while guess != answer:
        check = guess_check(guess)
        if check == 2:
            
            print(f"Check is {check}. Your guess of {guess} is too high. Pick something lower. You're now on Guess {num_guesses}!\n")
            guess = ask_user()
        elif check == 1:
            
            print(f"Check is {check}. Your guess of {guess} is too low. Pick something higher. You're now on Guess {num_guesses}! The correct answer is {answer}\n")
            guess = ask_user()
    print(f"Check is {check}. Congratulations! Your guess of {guess} is correct! \n\nNumber of Guesses: {num_guesses}")
        
    
# This function actually gives us the number to guess
def get_num():

    # Randomly determines a number between 0 and 1000
    import random
    answer = random.randrange(1, 10)
    return answer

def ask_user():
    answer = int(input("Pick a number: "))
    return answer

def guess_check(guess):
    answer = get_num()
    if guess > answer:
        
        # Guess is too high, therefore value for guess_check() is 2
        check = 2
    elif guess < answer:
        
        # Guess is too low, therefore value for guess_check() is 1
        check = 1
    else:
        
        # Guess is right on, therefore value for guess_check() is 0
        check = 0
    return check

def num_guesses():
    number = 1
    guess = guess_check()
    
    #If Statement for whether guess is too high (2) or too low (1). If it's 0, then the number of guesses will not increase.'
    if guess == 1 or guess == 2:
        number += 1
    return number
main()

我尝试了一些方法来解决这个问题:

  • 我将ask_user()和guess_check()函数组合为一个函数。这没什么区别。
  • 试图在不使用函数的情况下编写完全相同的程序。跑得很好。代码的猜测检查部分没有出现问题。所以这告诉我函数是这个问题发生的原因。

无论如何,非常感谢你的帮助。你都不知道我有多感激你。我绝望了。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130973
 
491 次点击