Untitled
unknown
plain_text
9 days ago
1.4 kB
3
Indexable
def calculate_ean13_check_digit(code: str) -> int: """Calcula el dígito de control EAN-13 para un código de 12 dígitos (como string).""" digits = [int(d) for d in code] checksum = (sum(digits[::2]) + sum(d * 3 for d in digits[1::2])) % 10 return (10 - checksum) % 10 def generate_ean13_codes(base_code: str, count: int = 100) -> list: """ Genera una lista de códigos EAN-13 válidos a partir de un base_code de 12 dígitos. :param base_code: Código base como string de 12 dígitos. :param count: Número de códigos a generar. :return: Lista de códigos EAN-13 como strings. """ if len(base_code) != 12 or not base_code.isdigit(): raise ValueError("El código base debe tener exactamente 12 dígitos numéricos.") base_number = int(base_code) codes = [] for i in range(count): current_number = str(base_number + i).zfill(12) # Mantener 12 dígitos con ceros a la izquierda check_digit = calculate_ean13_check_digit(current_number) codes.append(f"{current_number}{check_digit}") return codes # Solicitar al usuario el código base base_code = input("Introduce un código base de 12 dígitos: ").strip() try: ean13_codes = generate_ean13_codes(base_code) # Mostrar los 100 códigos generados for code in ean13_codes: print(code) except ValueError as e: print(f"Error: {e}")
Editor is loading...
Leave a Comment