对函数的调用不起作用

2024-04-26 11:59:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个简单的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非常陌生,我一直在努力理解函数。我哪里出错了?你知道吗


Tags: or函数代码用户游戏键入计算机数字
2条回答

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

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

调用guess_c时返回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。你知道吗

相关问题 更多 >