es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Necesito emitir una tarjeta para la cuenta bancaria utilizando los módulos Random y Datetime en Python.

Estoy trabajando en un proyecto donde tengo que emitir una tarjeta para cada cuenta que se haya creado, a continuación se muestran los métodos que tengo que crear dentro de la clase para emitir la tarjeta y con una fecha de vencimiento según los criterios mencionados a continuación, no se nos permite importar nada más allá del módulo “random” o “datetime”, podemos usar bucles para lo mismo.

  • cardNumber: El número de tarjeta, que debería ser una cadena que contenga un número de 16 dígitos (debe importar y usar el módulo “random” para esto).
  • cardExperience: una tupla, donde el primer elemento es un entero correspondiente al mes y el segundo elemento es un año de 2 dígitos. Por ejemplo, 03/23 representa marzo de 2023 (debe importar y usar el módulo “datetime” para esto).

issueNewCard(self): Crea un nuevo número de tarjeta, con fecha de vencimiento de 3 años a partir del mes actual (por ejemplo, si hoy es 31/1/21, la fecha de vencimiento sería 01/24).

def IssueNewCard(self):
    CardNumber = list(range(1000000000000000,9999999999999999))
    IssuedCardNumber = random.sample(CardNumber, 1)
    today=datetime.date.today().strftime("%m/%y")
    print(IssuedCardNumber)
    print(today)

*Note: The markdown formatting has been removed as it is not applicable in plain text translation.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Aquí hay un código de muestra que podría ayudarte a crear los métodos necesarios dentro de la clase para emitir una tarjeta:

    import datetime
    import random
    
    class Tarjeta:
    
        def __init__(self):
            self.numero_tarjeta = None
            self.fecha_expiracion = None
    
        def emitirTarjetaNueva(self):
            # Generar un número de tarjeta aleatorio de 16 dígitos
            numero_tarjeta = str(random.randint(10**15, 10**16-1))
            # Obtener la fecha actual
            hoy = datetime.date.today()
            # Establecer la fecha de vencimiento como dentro de 3 años
            fecha_expiracion = hoy.replace(year=hoy.year + 3)
            # Establecer los atributos de la tarjeta
            self.numero_tarjeta = numero_tarjeta
            self.fecha_expiracion = (fecha_expiracion.month, fecha_expiracion.year % 100) # Según el formato requerido
    
        def imprimirDetallesTarjeta(self):
            print('Número de Tarjeta:', self.numero_tarjeta)
            print('Fecha de Expiración:', '{:02d}/{:02d}'.format(*self.fecha_expiracion))
    

    En el código anterior, el método emitirTarjetaNueva genera un número de tarjeta aleatorio de 16 dígitos y calcula la fecha de vencimiento como dentro de 3 años a partir de la fecha actual utilizando el módulo datetime. Luego establece los atributos de la tarjeta (numero_tarjeta y fecha_expiracion) dentro de la clase.

    El método imprimirDetallesTarjeta es un método adicional que se puede usar para imprimir los detalles de la tarjeta una vez emitida.

    Luego puedes crear una instancia de la clase Tarjeta y llamar al método emitirTarjetaNueva para emitir una nueva tarjeta:

    mi_tarjeta = Tarjeta()
    mi_tarjeta.emitirTarjetaNueva()
    mi_tarjeta.imprimirDetallesTarjeta()
    

    Esto producirá una salida similar a:

    Número de Tarjeta: 7835862551868190
    Fecha de Expiración: 01/24
    

    Espero que esto sea de ayuda. Avísame si tienes alguna pregunta.

Comments are closed.