2017-09-13 1 views
0

이 질문은 Python 3.6과 관련하여 질문하지 않았습니다. 데이터가 정수 또는 부동 소수점 이외의 다른 것으로 주어진 경우 일련의 입력 질문에서 특정 사용자 입력 질문을 다시 묻는 솔루션이 필요합니다.Python 3.6에서 잘못된 유형의 데이터가 제공된 후 사용자 입력을 다시 묻는 방법

첫 번째 질문에 대해 올바른 float 데이터를 입력했지만 두 번째 질문에 문자열 문자를 입력 할 수 있습니다. 그러면 "ValueError : 문자열을 부동으로 변환 할 수 없습니다 :"가 출력됩니다.

SECOND 입력 질문에 정수/부동 데이터를 넣지 못했음을 다시 묻는 루핑 또는 다른 방법을 사용하는 방법이 있습니까? 또한, 처음 질문을 다시 시작해야하는 대신 두 번째 질문 만 다시 프롬프트 할 수 있습니까?

counter = 0 
counter += float(input("What is number 1?")) 
counter += float(input("What is number 2?")) 
counter += float(input("What is number 3?")) 
print(counter) 

편집 : 유사한 9 개의 답변이 포함 된 게시 된 기사를 읽었지만 여러 입력 질문을 차례로 처리하지 않았습니다. 제공된 답변이 도움이되었지만 잘못된 데이터 유형을 입력 한 후 2 ~ 3 번째 질문을 다시 표시하는 방법을 아직 알지 못합니다. 요약 : 나는이 질문에서 시작해야하는 사용자를하는 것보다 오히려 실패 질문을 다시 묻는 메시지를 표시하도록 프로그램을 싶습니다 1.

+0

답변을 찾은 질문은 여전히 ​​파이썬 3.6에서 유효합니다. – roganjosh

+0

더 명확하게 원래 질문을 편집했습니다. –

+0

한 질문을 다시 프롬프트하는 데 사용되는 구성은 원하는만큼 많은 질문을 원하는만큼 반복 할 수 있습니다. 'while' 루프 안에서 질문을하고,'input'을 감싸는 루프 안에'try' /'except'를 넣고, 정답이 입력되면'while' 루프에서 빠져 나오게하는 방법이 필요합니다. 필요한 항목의 100 %가 복제본에 포함되어 있으므로 단일 유스 케이스로 추정하면됩니다. 다른 말로하면,'input's을 하나의'while' 블록에 넣지 않고 설정하면됩니다. – roganjosh

답변

0

이 의사 코드처럼 뭔가 작동합니다 님의

for q in questions: 
    while True: 
     ask_question 
     if question_result_validated: 
      break 
관련 문제