Untitled
unknown
plain_text
9 months ago
1.4 kB
7
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