데이터 형식이 잘못된 경우 입력을 어떻게 다시 실행합니까?

정송팡

그래서 여기에 질문이 있습니다. 목록에 값을 입력할 수 있는 'for in range'가 있지만 숫자가 아닌 값을 입력하면 잘못된 입력을 입력했다는 메시지만 표시되지만 올바른 값을 다시 입력할 수는 없습니다. 계속 다음으로 넘어가라고 합니다.
잘못된 값(예: 영어 문자)을 입력한 경우 입력을 다시 실행하여 특정 위치에 올바른 값을 가질 수 있도록 하려면 어떻게 해야 합니까?

도움을 주셔서 감사합니다! 파이썬의 신인

내가 작성한 코드는 다음과 같습니다.

count=15
student=list()
print('please insert student score:')
for item in range(count):
    line = input('enter score for student:'+str(item+1))
    if line.isdecimal() and 0<=int(line)<=100:
        data=int(line)
        student.append(data)
    else:
        print(f"what you entered:Num{item+1:3d}is not a score")
total=0
for line in student:
    total += line
    totalF = total/15
print('Student Average Score is:','%.2f' % totalF)
print('Finish Input\n')
print("student:",student)    
print('You have', end='--> ')
for item in student:
    print(f'{item:d}', end='  ')
브루노 디스틸리에

점수를 얻는 코드의 일부를 자체 함수로 추출하고 이 함수에서 값이 유효할 때까지 값을 계속 요청하는 while 루프에 넣습니다.

def get_score(num):
    while True:
        value = input(f'enter score for student {num}:')
        try:
            # int(value) will raise a ValueError if value 
            # is not a proper representation of an int
            value = int(value)
            # now we have an int, test it's value,
            # and raise a ValueError if it doesn't match 
            if not 0 <= value <= 100:
                raise ValueError("value should be between 0 and 100")

             # value is ok, done 
             return value

        except ValueError as e:
            # either it's not an int or it's not in the right range
            print(f"Invalid value '{value}': {e}")


# naming tip: use a plural for collections
students = []  

# tip: avoid those useless "item+1" things ;-) 
for num in range(1, count+1):
    score = get_score(num)
    students.append(score)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

날짜가 30일보다 오래된 경우 선택합니다. 형식이 잘못된 경우 어떻게 해야 합니까?

입력 데이터 크기가 큰 경우 실행자는 데이터를 어떻게 처리합니까?

Joda 시간 : 잘못된 형식입니다. 데이터 형식이 잘못되었습니다

SignalR : 연결 ID가 잘못된 형식입니다. 세션이 만료되면 어떻게 처리합니까?

잘못된 입력이 있는 경우 다시 입력 요청

"잘린 잘못된 INTEGER 값"경고를 제거하기 위해 MySQL 업데이트 문을 어떻게 다시 작성합니까?

잘못된 JSON 큰 따옴표 오류입니다. 이미 큰 따옴표가있는 경우 구문을 수정하려면 어떻게해야합니까?

입력 한 값이 잘못된 경우 어떻게 메뉴로 돌아 갑니까?

다른 입력이 무언가 잘못되었다는 것을 의미하는 경우 if-else 블록을 어떻게 종료해야합니까?

파일을 읽을 수 있지만 파일의 데이터 형식이 잘못된 경우 Java에서 어떤 예외를 사용해야합니까?

Android Room 데이터베이스 파일이 DB 브라우저에서 잘못된 파일 형식입니다.

사용자가 Passport OAuth2(Swoop) 및 Node/Express를 사용하여 잘못된 이메일을 입력한 경우 어떻게 리디렉션합니까?

주어진 파일 형식이 잘못된 경우 입력 파일 재설정

잘못된 입력이 입력 된 경우이 프로그램이 다시 입력을 요청하게하는 방법 (C 프로그래밍에서)?

포함된 양식이 잘못된 입력 유형을 렌더링합니다.

특정 값이 제출 된 경우 입력 유형 = "텍스트"에서 자리 표시 자 텍스트의 색상을 어떻게 변경합니까?

선택을 요청합니다. 옵션이 잘못된 경우 다시 확인

kafka에 공급 된 데이터에서 예기치 않은 형식이 발생하는 경우 Spark 작업을 다시 시작하면 어떻게 되나요?

Mongoose 및 Express를 사용하여 요청 본문이 잘못된 경우 잘못된 요청을 보내려면 어떻게해야합니까?

시간이 잘못된 형식을 반환합니다.

사용자가 잘못된 데이터를 입력 한 경우 스크립트를 다시 시작하는 쉬운 방법이 있습니까?

입력이 잘못된 경우 루프를 다시 시작하는 방법은 무엇입니까?

셀 값이 변경된 경우에만 명령을 실행하려면 어떻게합니까?

약속이 이행 된 경우에만 어떻게 실행합니까?

pip가 파이썬의 잘못된 복사본에 설치되고 있다는 사실을 어떻게 변경합니까?

Python-잘못된 값이 입력 된 경우 if 문 다시 시작

입력 데이터가 변경된 경우 Airflow 작업을 다시 실행하는 방법

SSIS의 Oracle 쿼리가 잘못된 데이터 형식을 정의합니다.

형식이 다른 경우 C는 공용체의 데이터를 어떻게 해석합니까?