#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목파이썬 Step 12 실습파일 관련 질문있습니다. 2022-04-13 15:32
작성자
첨부파일Number Guessing Game.zip (0.6KB)

파이썬 실습자료 step 12 Loop Part 2에서 마지막에 숫자 추측 게임 개발하기라는 문제를 풀다가 잘 안풀려서 질문 드립니다.  제가 작성한 코드는 글 맨 아래쪽에, 그리고 파일로도 첨부해드리겠습니다. 제가 작성한 코드에서 2가지 오류가 발생합니다. 


오류 1) -------해결됨

마지막에 숫자를 맞춰서 1을 입력하면 else에 있는 아래의 코드가 같이 실행되어


보다 크면 숫자 2, 보다 작으면 숫자 0, 맞으면 숫자 1을 입력해주세요. : 1

0,1,2 중에서 입력해주세요.

제가 맞췄군요!


​라고 출력이 됩니다. 변수 Ans 값이 1이 된다면 While문이 실행되지 않아 그냥 넘어가야 되는걸로 알고 있는데 그렇지 않아 무엇이 문제인지 파악이 안됩니다.

else:
print("0,1,2 중에서 입력해주세요.")
Runs = Runs - 1
num = num - 1

-------------------------------------------------------------------------------------------------

오류1)은 해결했습니다.


오류 2) 

저는 프로그램이 똑같은 수를 두번 물어보게 하지 않기 위해 변수 Runs의 값을 늘려 리스트guess 에 없는 값을 만들어 내도록 코드를 작성해보았습니다.

while round(guess[num-1] + (100 / (2 * Runs)) / 2) in guess:
Runs = Runs + 1
continue

위의 코드를 써주었는데 실행시켯을때는 위의 코드가 작동이 안되는건지 아니면 제가 잘못 작성한건지 중복되는 값이 list에 append 됩니다.


위 두가지 오류를 해결 못해 질문 드립니다. 아래에는 제가 작성한 코드 전문 넣어드리겠습니다. 또 코드 자체도 첨부파일로 첨부해드리겠습니다.

#미완성 프로그램
Ans = -1
guess = [50]
Runs = 0
num = 0

print ("마음속으로 1~100사이의 정수를 생각해 주세요")
while Ans != 1:
Runs = Runs + 1
print("그 숫자는", guess[num], "인가요?")
Ans = int(input("보다 크면 숫자 2, 보다 작으면 숫자 0, 맞으면 숫자 1을 입력해주세요. : "))
num = num + 1
if Ans == 2:
while round(guess[num-1] + (100 / (2 * Runs)) / 2) in guess:
Runs = Runs + 1
continue
guess.append (round(guess[num-1] + (100 / (2*Runs)) / 2))
elif Ans == 0:
while round(guess[num-1] + (100 / (2 * Runs)) / 2) in guess:
Runs = Runs + 1
continue
guess.append(round(guess[num-1] - (100 / (2*Runs)) / 2))
#ANS == 3 코드는 확인용 코드임
elif Ans == 3:
print(guess)
Runs = Runs - 1
num = num - 1
else:
print("0,1,2 중에서 입력해주세요.")
Runs = Runs - 1
num = num - 1

print("제가 맞췄군요!")
#파이썬# 강의노트
댓글