※ ISBN 코드를 이용해 도서 번호 검증하기
- ISBN(International Standard Book Number) 코드는 각 출판사가 펴낸 도서의 국제 표준에 맞추어 붙이는 도서 고유 번호이다. ISBN 코드는 10~13자리로 구성되며 13자리 ISBN 코드의 경우 다음과 같은 형식으로 구성됨.
예시로 979(접두부)-11(국별번호)-957304(발행자번호)-3(서명식별번호)-8(체크기호) 와 같다.
ISBN 코드의 유효성을 검증하는 방법은 ISBN 코드 12자리 숫자에 가중치 1과 3을 번갈아 곱해 값을 더하고
가중치의 합을 10으로 나누어 나머지를 구하며 10에서 나머지를 뺀 값이 체크기호가 되며, 나머지가 0인 경우
체크기호가 0이 된다.
def isbn_check(isbn):
s = 0
for i in range(len(isbn)-1):
if (i+1) % 2 == 1: # 홀수 자리에 가중치 1을 곱함
s = s + int(isbn[i]) * 1
else: # 짝수 자리는 가중치 3을 곱함
s = s + int(isbn[i]) * 3
print("ISBN 1~12자리의 가중치 반영 합계: %d"%s)
t = s % 10 # 변수 s의 가중치 압을 10으로 나누어 나머지 값을 구함
chk = (10 - t) % 10
print("ISBN 1~12자리의 체크기호 값: %d"%chk)
if chk == int(isbn[12]): # 체크기호 값이 isbn[12]와 일치할 경우
rst = 1 # rst의 값이 1로 설정됨 == 검증됨
else:
rst = 0
return rst
isbn = input("ISBN 13자리(- 제외) : ")
if len(isbn) == 13:
rst = isbn_check(isbn)
if rst == 1:
print("ISBN 코드 : %s는 검증되었습니다."%isbn)
else:
print("ISBN 코드 : %s는 검증되지 않았습니다."%isbn)
else:
print("ISBN 코드 입력은 -를 제외하고 13자리를 입력해주세요.")
'기타 > What I Learned' 카테고리의 다른 글
[TIL] 마우스와 키보드로 그림 그리기 (21.12.02) (0) | 2021.12.02 |
---|---|
[TIL] 문자열과 서식문자 (21.12.01) (0) | 2021.12.01 |
[TIL] 리스트 원소 (21.11.29) (0) | 2021.11.29 |
[TIL] 로봇 청소기 움직임 (21.11.28) (0) | 2021.11.28 |
[TIL] 7세그먼트 개별 LED 숫자 표시 (0) | 2021.11.27 |