调用函数不起作用

Call to function not working

我正在尝试制作一个简单的 Python "Higher or lower" 游戏,用户想出一个 1 到 100 之间的数字,然后计算机尝试猜测它。对于每个猜测,用户键入 'H'、'L' 或 'C'(分别为 "Higher"、"Lower" 或 "Correct")。计算机的第一个猜测总是 50。这是代码:

first_guess = 50
print("I guess {}".format(first_guess))
h_l_c = input("Higher, lower, or correct?: ").strip().lower()

def guess_c():
    win = "I WON!"
    if h_l_c == "c":
        return win

guess_c()

所以无论如何,我 运行 这个我得到:

I guess 50.
Higher, lower, or correct?:

然后我输入c。现在,据我了解,因为 h_l_c 已被定义为 "c",函数 guess_c() 应该 运行 和 Python 应该执行函数并打印 "I WON!"。不幸的是,什么也没有发生。

我是 Python 的新手,一段时间以来我一直在努力理解函数。我哪里错了?

你的 guess_c 很好 运行,但请注意你 'returning' 是一个值。相反,只需将其打印在 if 块内。像这样:

def guess_c():
    win = "I WON!"
    if h_l_c == "c":
        print win

当您调用 guess_c 时,您将返回 win,但不会打印您的字符串:

first_guess = 50
print("I guess {}".format(first_guess))
h_l_c = input("Higher, lower, or correct?: ").strip().lower()

def guess_c():
    win = "I WON!"
    if h_l_c == "c":
         print(win)                # Change return win with print(win) 

guess_c()                          # or print(guess_c()) 

您没有打印 guess_c() 调用返回的结果,您只是返回 win,因此 win 字符串不会写入标准输出。