pitón quine

Zeeshan Afridi 21 junio 2023
  1. Ejecutar Python Quine
  2. Conclusión
pitón quine

Un Quine es un programa de computadora que produce su código fuente como salida. El programa no toma ninguna entrada y genera una copia de su código fuente.

Los quines son interesantes porque parecen desafiar el propósito mismo de la programación, que es producir una salida basada en la entrada. Quines puede ser útil en ciertas situaciones, como cuando necesita generar una copia del código fuente de su programa.

Ejecutar Python Quine

Crear un Quine no es particularmente difícil, pero requiere un poco de reflexión. La idea básica es utilizar la funcionalidad integrada del lenguaje de programación para generar el código fuente del programa.

En Python, puede usar la función repr incorporada para generar el código fuente de un objeto determinado.

Por supuesto, simplemente llamar a repr en el código fuente del programa no producirá un Quine válido, ya que la salida también incluirá la función repr en sí. Para evitar esto, puede usar un poco de truco para crear una cadena autorreferencial que no incluya el proceso repr.

Una vez que tenga una cadena autorreferencial, puede imprimirla para producir un Quine válido, ¡y eso es todo! Puede crear un programa con una copia de su código fuente con solo un código corto.

Ejemplo de código:

print((lambda s: s % s)("print((lambda s:s%%s)(%r))"))
print((_ := "print((_:=%r)%%_)") % _)
exec(s := 'print("exec(s:=%r)"%s)')

Producción :

print((lambda s:s%s)('print((lambda s:s%%s)(%r))'))
print((_:='print((_:=%r)%%_)')%_)
exec(s:='print("exec(s:=%r)"%s)')

Conclusión

Un Quine es un programa utilizado para crear salidas de su código fuente. El nombre proviene de la palabra “cita”, que significa repetir algo palabra por palabra.

Quines se utilizan como prueba de la capacidad de un lenguaje de programación para manejar código autorreferencial. En Python, un Quine es relativamente fácil de escribir.

Todo lo que debe saber es rodear su código con comillas y luego usar la declaración de impresión para generar el código.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn