• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

input 값에 제한을 거는 방법이 궁금합니다/

22.02.27 23:09 작성 조회수 143

0

# Hangman(행맨) 미니게임 제작(1) # 기본 프로그램 제작 및 테스트 import time # 처음 인사 name = input("What is your name?") print("Hi, " + name, "Time to play hangman game!") print() time.sleep(1) print("Start Loading...") print() time.sleep(0.5) # 정답 단어 word = "butterfly" # 추측 단어 guesses = '' # 기회 turns = 10 # 핵심 While Loop # 찬스 카운트가 남아 있을 경우 while turns > 0: # 실패 횟수(단어 매치 수) failed = 0 print(guesses) # 정답 단어 반복 for char in word: # 정답 단어 내에 추측 문자가 포함되어 있는 경우 if char in guesses: # 추측 단어 출력 print(char, end=' ') else: # 틀린 경우는 대시로 처리 print("_", end=' ') failed += 1 # 단어 추측이 성공 한 경우 if failed == 0: print() print() print('Congratulations! The Guesses is correct.') # While 구문 중단 break print() # 추측 단어 문자 단위 입력 print() guess = input("guess a charater.") # 단어 더하기 guesses += guess # input 자리 수가 word 자리수보다 클 때 에러 발생 try: a = len(guesses) b = len(word) if a < b: print("입력한 값의 자리수가 답의 자리수보다 적습니다") else: raise ValueError except ValueError: print("입력한 값의 자리수가 답의 자리수보다 크므로 에러를 발생시킵니다") else: print("답의 자리 수를 확인하세요") # 정답 단어에 추측한 문자가 포함되어 있지 않으면 if guess not in word: # 기회 횟수 감소 turns -= 1 # 오류 메세지 print("Oops! Wrong") # 남은 기회 출력 print("You have", turns, 'more guesses!') if turns == 0: # 실패 메세지 print("You hangman game failed. Bye!")
 
 
기본 학습자료에서 예외처리를 참고하여서 input값의 자리수가 word의 자리수보다 크면 입력을 에러를 띄워 입력을 못하게 하고 싶은데 제가 수정,추가한 코드는 에러로 input값을 강제하지 못하더라구요,
위치가 잘못된건지는 모르겠으나, 일단 코드자체를 제대로 작성하지 못한 것 같습니다. 피드백 가능할까요?

답변 1

답변을 작성해보세요.

0

input 자체에서 제한값을 걸지마시구요!

받은 문자열(str) 데이터의 길이 len 등을 iter(for) 문 등으로

확인하셔서 제한을 거시는게 좋아여~