Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ควินในภาษาไพทอน


Quine เป็นโปรแกรมที่ไม่รับอินพุต แต่สร้างเอาต์พุต มันจะแสดงซอร์สโค้ดของตัวเอง นอกจากนี้ ควินยังมีเงื่อนไขบางประการ เราไม่สามารถเปิดไฟล์ซอร์สโค้ดภายในโปรแกรมได้

โค้ดตัวอย่าง

a='a=%r;print (a%%a)';print (a%a)

ผลลัพธ์

a='a=%r;print (a%%a)';print (a%a)

ควินน์นี้ทำงานอย่างไร

การจัดรูปแบบสตริงอย่างง่ายนี้ได้ผล เรากำลังกำหนดตัวแปร 'a' และภายใน a เรากำลังจัดเก็บ 'a=%r;print (a%%a)' จากนั้น เรากำลังพิมพ์ค่าของ a และแทนที่ %r ด้วยค่าของ a ดังนั้นควินจึงทำงาน

เราทำงานเดียวกันได้โดยเปิดไฟล์แบบนี้

print(open(__file__).read())

แต่ในกรณีนี้ เรากำลังละเมิดกฎของควิน เราไม่สามารถเปิดไฟล์ใน Quine ได้