呼叫功能不起作用

时间:2017-04-23 19:19:33

标签: python function

我试图制作一个简单的Python游戏"更高或更低"用户认为1到100之间的数字,并且计算机试图猜测它。对于每个猜测,用户键入' H' L'或' C' (对于"高等","低"或者"分别纠正")。计算机的第一次猜测始终为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很陌生,而且我一直在努力理解功能。我哪里错了?

2 个答案:

答案 0 :(得分:2)

您的guess_c运行良好,但请注意您正在“返回”某个值。相反,只需在if块中打印即可。像这样:

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

答案 1 :(得分:1)

当您致电win并且不打印字符串时,您将返回guess_c

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字符串不会写入stdout。