-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
인터프리터에서는 답이 안나오나요??
20.01.14 13:03 작성 조회수 106
2
import random
number = random.randint(1, 99)
print("맞춰봐 잇힝")
def input_check(msg, casting = int):
while True:
try:
user_input == casting(input("몇 일까요?"))
return user_input
except:
continue
count = 0
chance = 10
while count < chance:
count += 1
user_input = input_check("몇 일까요?")
if number == user_input:
break
elif user_input < number:
print("{} 보다 큰 숫자입니다.".format(user_input))
elif user_input > number:
print("{} 보다 작은 숫자입니다.".format(user_input))
if number == user_input:
print("성공!, {}이 맞습니다.".format(number))
else:
print("실패 정답은 {}입니다.".format(number))
자꾸 질문을 드려 죄송한데요,,, 제가 똑같이 작성한
코딩에서는 '맞춰봐 잇힝'외에는 while문이
실행이 되지 않네요.
감사합니다.
답변을 작성해보세요.
0
남박사
지식공유자2020.01.14
def input_check(msg, casting = int):
while True:
try:
user_input == casting(input("몇 일까요?"))
return user_input
except:
continue
일단 원래 작성하신 코드의 문제는 try 문에서 오류가 발생하여 무한으로 continue 상황이 되고 있는 내용입니다.
def input_check(msg, casting = int):
while True:
try:
user_input == casting(input("몇 일까요?"))
return user_input
except Exception as e:
print("Error {}".format(e))
continue
except 문에 오류의 원인을 출력해보면 위의 함수에서 continue 의 들여쓰기가 한칸 더 들여쓰기 되어있습니다. 코드를 복사 붙여넣기 하는 과정에서의 문제인지는 모르겠습니다. 파이썬에서 들여쓰기의 칸수는 아주아주 중요한 문제 입니다. 들여쓰기의 줄을 맞춰주고 다시 실행해보니 user_input == casting(...) 여기도 문제가 있습니다. 변수의 값 대입은 = 한개 입니다. == 는 비교연산자 입니다.
그리고 어떤 문제던 각 구간마다 print() 문을 찍어서 어디서 문제가 생기는지를 추적해나가는 습관을 들이시는게 좋습니다. 물론 디버깅을 해보는 더 좋은 방법도 있지만 print 문만 여기저기 찍어봐도 충분히 찾아낼 수 있는 문제들이 많습니다. 그리고 질문 계속 많이 더 주셔도 좋습니다. 죄송하실 필요 전혀 없습니다. ^^
답변 1