2017-04-23 23 views
0

저는 사용자가 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() 함수가 실행되어야하고 파이썬은 함수를 실행하고 "I WON!"을 인쇄해야합니다. 불행히도, 아무 일도 일어나지 않고 있습니다.

저는 파이썬에 매우 익숙합니다. 저는 잠시 동안 함수를 이해하려고 애를 썼습니다. 내가 어디로 잘못 가고 있니?

+0

함수에서 'print'를 호출하는 위치는 어디입니까? – styvane

답변

2

guess_c이 잘 돌아가고 있지만 값을 '반환하고 있습니다. 대신 if 블록 안에 인쇄하십시오. 당신이있어 당신은 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를 호출 할 때

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

이상,'print (guess_c()) ' –

+0

indentation.in 코드를 수정하십시오. – direprobs

1

당신은 win을 반환하고 그냥 win을 반환하므로 win 문자열을 stdout에 쓸 수 없습니다.

관련 문제