파이썬 숫자맞추기 질문있습니다
조회수 681회
정답맞추는 기회를 두번으로하고, 두번째 기회에서 첫번째 비교결과를 제공하려고 하는데요.
밑에있는대로 실행하면 두번째 입력값을 받지못하고 문자열로 나오는데 input함수를 추가하면 오류가 뜨고해서 방법좀 알려주실수 있을까요?
from random import randint
answer=randint(1,9)
print("숫자 게임에 오신 것을 환영합니다.")
g=input("숫자를 맞춰보세요: ")
guess=int(g)
if (guess==answer):
print("사용자가 이겼습니다.")
elif (answer>guess):
print(guess,"보다 큰 숫자로 다시 맞춰보세요: ")
if(answer==guess) :
print("사용자가 맞췄습니다.")
else:
print("당신은 바보입니다")
print("게임 종료")
else:
print(guess,"보다 작은 숫자로 다시 맞춰보세요: ")
if answer==guess:
print("사용자가 맞췄습니다.")
else:
print("당신은 바보입니다.")
print("게임 종료")
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
아래처럼 하시면 됩니다.
아마, int로 형 변환을 안 해주셨기 때문으로 생각됩니다.
from random import randint answer=randint(1,9) print(answer) print("숫자 게임에 오신 것을 환영합니다.") g=input("숫자를 맞춰보세요: ") guess=int(g) if (guess==answer): print("사용자가 이겼습니다.") elif (answer>guess): guess = int(input("보다 큰 숫자로 다시 맞춰보세요: ")) print(guess, ",", answer) if(answer==guess) : print("사용자가 맞췄습니다.") else: print("당신은 바보입니다") print("게임 종료") else: guess = int(input("보다 작은 숫자로 다시 맞춰보세요: ")) if answer==guess: print("사용자가 맞췄습니다.") else: print("당신은 바보입니다.") print("게임 종료")
하지만, 이런 코드의 경우는 코드의 재사용을 최대한 방지하시여 직관적이게 아래처럼 하시는 걸 추천드립니다.
from random import randint answer=randint(1,9) print("숫자 게임에 오신 것을 환영합니다.") guess = int(input("숫자를 맞춰보세요: ")) if (guess==answer): print("사용자가 이겼습니다.") else: if(answer>guess): print("보다 큰 숫자로 다시 맞춰보세요: ") elif(answer<guess): print("보다 작은 숫자로 다시 맞춰보세요: ") guess = int(input()) if(answer==guess) : print("사용자가 맞췄습니다.") else: print("""당신은 바보입니다 게임 종료""")
댓글 입력