을하지만 난 항상 "기본 10) (INT에 대한 잘못된 문자"얻을 오류
예외가 발생했습니다. 구체적으로는 ValueError
입니다. except
블록을 사용하여 예외를 catch 할 수 있습니다. 자세한 내용은 지금까지 사용해 본 언어 자습서를 참조하거나 except block Python
에 대해 Google에 문의하십시오.
"오류"가 표시되면 무한 루프가 발생합니다.
입력이 올바르지 않다는 것을 감지하면 루프를 다시 시도하기 전에 새로운 입력을 받아야합니다. 당신의 루프 안에 입력 물건을 넣으십시오. 루프에 추가하여 재귀 (을 main
에서 호출)를 사용하지 마십시오. 너는 단지 이런 식으로 자신을 혼란스럽게 할 것이다. 루프 내부에 들어갈 때까지 choice
의 값을 얻지 못하기 때문에 적절한 choice
값을 찾으면 명시 적으로 break
루프에서 벗어나기 쉽습니다 (루프를 제어하려고 시도하는 대신에). while
조건).
루프 구조를 단순화하기 위해 continue
을 사용할 수도 있습니다. try
블록에서 모든 작업을 수행하는 대신 숫자를 추출하는 부분으로 제한합니다. except
블록에서 continue
을 사용하여 실제 숫자가 없을 때 루프의 나머지 부분을 건너 뛰고 나머지 루프 만 수행합니다. (결국, 어쩌면 코드 우리는 몇 가지 완전히 다른 이유 choice == 1
또는 choice == 2
수 raise ValueError
을 요구, 우리는 그것에 대해 뭔가 다른 일을 할 것입니다.)
while True:
try:
choice = int(raw_input("Give me a number"))
except ValueError:
print "Could you at least give me an actual number?"
continue
if choice == 1:
do_something()
elif choice == 2:
do_something_else()
elif choice == 3:
break
else:
print "Try a different number"
사용에 raw_input() 대신 입력보다()와 수동으로 변환하여 실패 할 경우 예외를 catch합니다. –
Python 2.x 또는 3.x? –