CS50之python编程入门:猜游戏题

问题描述 投票:0回答:1

当输入值 6 和 4 的预期输出应该是“太小!”时,如何解释问题集 4 的猜谜游戏问题中 check50 的结果?或“太大了!”根据提供的代码,但 check50 通过测试用例并输出“Just right!”? check50 测试用例或我解释其结果的方式是否可能存在问题?`

import random

while True:
    level = input("Input: ")
    if level.isnumeric() and int(level) > 0:
        level = int(level)
        break
n = random.randint(1,level)
print(n)
while True:
    guess = input("Guess: ")
    if guess.isnumeric() and int(guess) > 0:
        guess = int(guess)
        if guess > n:
            print("Too large!")
        elif guess < n:
            print("Too small!")
        else:
            print("Just right!")
            break



我为问题集4中的猜谜游戏问题编写了代码并通过check50运行它。该代码旨在输出“太小!”或“太大了!”如果用户的猜测不正确并且“恰到好处!”如果猜测正确。当我输入值 6 和 4 时,输出应该是“太小了!”因为程序会生成一个介于 1 和 6 之间的随机数,而 4 小于生成的数。然而,check50 通过了测试用例并输出“Just right!”对于这个输入,这是意想不到的。我很好奇 check50 这种行为的原因。测试用例或我解释其结果的方式是否可能存在问题?任何见解将不胜感激。

python cs50
1个回答
0
投票

了解

check50
运行自动化测试并且不知道您提到的特定输入值(6 和 4)是很重要的。相反,它会根据一系列不同的输入和预期输出来测试您的代码,以确保您的代码在各种情况下都能正常工作。您提到的输出可能只是您在手动运行代码时遇到的一个特定示例。

“恰到好处!”

check50
输出中的消息并不意味着程序应始终输出“恰到好处!”对于给定的输入。相反,这意味着程序在执行的特定测试用例
check50
中的行为符合预期。请记住,
check50
可能会使用不同的输入来测试您的代码。由于您的代码会生成随机数,因此每次运行程序时输出可能会有所不同。

如果您的代码通过了

check50
中的所有测试用例,它很可能工作正常,并且您已经实现了必要的逻辑来处理用户的输入并提供适当的反馈。
check50
也有可能无法涵盖所有边缘情况,因此如果您仍然有顾虑,您可以创建额外的测试用例以确保您的代码在不同场景中按预期运行。

© www.soinside.com 2019 - 2024. All rights reserved.