2017-04-23 15 views
0

私は、ユーザーが1から100の間の数を考え、コンピュータがそれを推測しようとする、単純なPythonの "高低"ゲームを作ろうとしています。すべての推測に対して、ユーザーは '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

あなたの文字列が印刷されない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の文字列はstdoutに書き込まれません。

関連する問題