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 is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn