Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: latin-1 -*-
- """ verificación ISBN-10 ISBN-13 desde fichero exterior Antonio Villanueva Segura
- """
- import sys
- import math
- def isValid(isbn):
- """ valida un isbn"""
- s=0
- m=0
- #Analiza si hay algun elemento indeseado
- for i in isbn[:-1]:
- if not i.isdigit():
- return False
- if (not isbn[-1].isdigit()) and isbn[-1]!='X':
- return False
- if len(isbn)==10:#ISBN_10
- for i in isbn[:-1]:
- s+=int(i) *(10-m)
- m+=1
- s=(11- s%11) %11
- if isbn[-1]=='X':
- return 10==s
- return int (isbn[-1])==s
- if len(isbn)==13:#ISBN_13
- for i in isbn[:-1]:
- s+= int(i) * 3**(m % 2);
- m+=1
- if (s==10):
- return isbn[-1]=='X'
- if isbn[-1]=='X':
- return 10==s
- return (int(isbn[-1]) ==(10- s%10)%10)
- return False
- n = int(input()) #Cuantos datos vamos a leer ?
- invalidos=[] #n°s invalidos
- for i in range(n): #N° de ISBN a leer desde un fichero externo <dato.txt
- isbn = input()
- if (not isValid(isbn)):
- invalidos.append(isbn)
- print (str(len(invalidos)) +" invalid:")
- for inv in invalidos:
- print (inv)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement