2017-04-23 44 views
0

我试图做一个简单的“更高或更低”的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很陌生,一直在努力理解函数。我哪里错了?

+0

你的函数在哪里调用'print'? – styvane

回答

2

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

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

或更好,'print(guess_c())' –

+0

请修正indentation.in代码。 – direprobs

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字符串不会写入标准输出。