5 ไข่อีสเตอร์ใน Python ที่ทำให้การเรียนเขียนโปรแกรมสนุกขึ้น
รู้หรือไม่ว่า Python มีไข่อีสเตอร์หลายแบบที่ซ่อนอยู่? นอกจากจะเป็นภาษาที่ช่วยในการสร้างแอปพลิเคชันแล้ว Python ยังมีความตลกขบขันที่สามารถทำให้คุณหัวเราะได้ด้วย มาค้นหาไข่อีสเตอร์ที่ดีที่สุดกันดีกว่า
1. สวัสดีโลก (Hello World)
ถ้าคุณเคยเขียนโค้ดในภาษาใด ๆ มาก่อน โอกาสที่โปรแกรมแรกของคุณคือการพิมพ์ “Hello World” แสดงบนคอนโซล คุณสามารถทำเช่นนั้นใน Python ด้วยบรรทัดโค้ดเดียวคือ:
“`python
print(“Hello World”)
“`
แต่มีวิธีที่ซับซ้อนกว่านั้น คุณสามารถนำเข้าโมดูลที่ชื่อว่า __hello__
มาพิมพ์ได้:
“`python
import __hello__
“`
ตั้งแต่เวอร์ชัน Python 3.11 ขึ้นไป คุณต้องเรียกใช้เมท็อดหลักเพื่อพิมพ์ข้อความนี้ออกมา:
“`python
import __hello__
__hello__.main()
“`
นอกจากนี้ยังมีโมดูล __phello__
ที่ทำงานในลักษณะเดียวกัน:
“`python
import __phello__
__phello__.main()
“`
โมดูล __phello__
มีแอตทริบิวต์ชื่อ spam ที่คุณสามารถเรียกใช้เพื่อพิมพ์ซ้ำสองครั้งได้ ซึ่งใช้งานได้ในเวอร์ชันที่เก่ากว่า 3.11:
“`python
import __phello__.spam
“`
โมดูลเหล่านี้ถูกเพิ่มเข้ามาใน Python เพื่อทดสอบว่าโมดูล frozen ทำงานได้ตามที่ตั้งใจไว้หรือไม่ ตามที่ได้กล่าวในโค้ด Cpython ดังนั้นครั้งต่อไปที่คุณต้องการพิมพ์ “Hello, World!” ลองใช้เทคนิคนี้เพื่อคลายเครียดหรืออวดเพื่อน ๆ ดูสิ
2. เซนของ Python (The Zen of Python)
ทุกภาษาการเขียนโปรแกรมจะมีหลักการ แนวทาง และแนวปฏิบัติที่ดีที่สุด Python ก็ไม่เป็นข้อยกเว้น Tim Peters หนึ่งในผู้พัฒนาหลักของ Python ได้เขียนหลักปฏิบัติสำหรับการเขียนโค้ดใน Python ไว้ ซึ่งรู้จักกันในชื่อ “Zen of Python” ข้อความเหล่านี้ถูกใส่ไว้ในภาษาเขียนโปรแกรมเองแล้ว คุณสามารถอ่านได้เพียงแค่รันคำสั่ง:
“`python
import this
“`
จอจะแสดงเซนของ Python ที่มีข้อความว่า:
Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it 's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
ถ้าคุณดูโค้ดของไฟล์นั้นจริง ๆ คุณจะพบว่าข้อความที่พิมพ์ออกมาเดิมถูกเข้ารหัส แทนด้วย:
“`python
s = “” “Gur Mra bs Clguba, ol Gvz Crgref Ornhgvshy vf orggre guna htyl.
…
Anzrfcnprf ner bar ubaxvat terng vqrn — yrg’f qb zber bs gubfr!”””
“`
มีโค้ดส่วนหนึ่งที่ใช้แปลงข้อความนี้:
“`python
d = {}
for c in (65, 97):
for i in range(26):
d[chr(i+c)] = chr((i+13) % 26 + c)
print ( “”.join([d.get(c, c) for c in s]))
“`
สิ่งที่เกิดขึ้นคือข้อความดั้งเดิมได้รับการเข้ารหัสโดยใช้อัลกอริทึมแทนที่ที่ชื่อว่า ROT13 ซึ่งเป็นอัลกอริทึมที่สามารถย้อนคืนได้ เมื่อคุณนำเข้าโมดูล this
ข้อความที่ถูกเข้ารหัสจะถูกถอดรหัสกลับสู่รูปแบบเดิมและพิมพ์ออกมาที่หน้าจอ
3. ปีกหรือล่องหน (Braces or No Braces)
ถ้าคุณเคยใช้ Python คุณคงรู้ว่า Python ไม่ค่อยใช้ปีกกากบาท (curly braces) ซึ่งเป็นโครงสร้างทางไวยากรณ์ที่พบบ่อยในหลายภาษายอดนิยม ปีกกากบาทมักใช้ในการกำหนดขอบเขตของบล็อกโค้ด เช่น คำสั่งเงื่อนไข วนลูป ฯลฯ แทนที่จะใช้ปีก Python ใช้การเยื้องบรรทัด แต่จะมีการใช้ปีกใน Python บ้างไหม? ไม่แน่ นักพัฒนาส่วนใหญ่ได้ตอบคำถามนี้ในโมดูล __future__
แล้ว:
“`python
from __future__ import braces
“`
จะได้ข้อความแสดง SyntaxError: not a chance เป็นการบอกกลาย ๆ ว่าปีกกากบาทคงจะไม่มีวันเกิดขึ้นใน Python โมดูล __future__
ใน Python ใช้สำหรับการนำฟีเจอร์ในเวอร์ชันปัจจุบันที่เตรียมจะรวมในเวอร์ชันอนาคต ซึ่งช่วยให้คุณปรับตัวเข้ากับฟีเจอร์ใหม่ได้ นี่เป็นการเลือกที่ฉลาดที่จะใส่ไข่อีสเตอร์นี้เข้าไปในโมดูลนี้
4. ฟลัฟล (The FLUFL)
โมดูล __future__
ยังมีไข่อีสเตอร์ที่น่าสนใจอีกอย่าง ถ้าคุณเคยใช้ตัวดำเนินการแบบเชิงตรรกะในโปรแกรมมิ่งมาก่อน คุณจะรู้ว่าในหลายภาษา สัญลักษณ์สำหรับไม่เท่ากับคือ != (เครื่องหมายอัศเจรีย์ตามด้วยเครื่องหมายเท่ากับ) อย่างไรก็ตาม หนึ่งในนักพัฒนาหลักของ Python Barry Warsaw หรือที่รู้จักในนามลุง Barry นิยมใช้ตัวดำเนินการเพชร (<>) แทนความไม่เท่ากัน:
“`python
from __future__ import barry_as_FLUFL
0 != 1
# SyntaxError: with Barry as BDFL, use ‘<>‘ instead of ‘!=’
0 <> 1
# True
1 <> 1
# False
“`
FLUFL ย่อมาจาก Friendly Language Uncle For Life ที่มาเป็นชื่อของลุง Barry นั่นเอง
5. ต่อต้านแรงโน้มถ่วง (antigravity)
อีกหนึ่งโมดูลสนุก ๆ ที่ควรลอง คือ antigravity
ฉันไม่อยากสปอยล์มาก แต่อยากให้คุณรันโค้ดนี้แล้วพบประสบการณ์ด้วยตัวคุณเอง:
“`python
import antigravity
“`
โมดูลนี้ยังมีฟังก์ชัน geohash() ที่ใช้ในการพิกัดภูมิศาสตร์โดยใช้ Munroe algorithm ซึ่งอาจดูเหมือนอยู่นอกที่อย่างแท้จริง แต่ฟังก์ชันนี้เชื่อมโยงกับไข่อีสเตอร์ก่อนหน้านี้ในโมดูล antigravity อย่างใกล้ชิด เจ๋งดีทีเดียว
บทสรุป
การค้นหาสิ่งลับ ๆ ทางด้านหลังในภาษาการเขียนโปรแกรมนั้นน่าสนใจเสมอ โดยเฉพาะเมื่อมันทำให้คุณยิ้มได้ หากบทความนี้ทำให้คุณสนใจ ลองพิจารณาเรียน Python และทำสิ่งสนุก ๆ เพิ่มเติมกับมันดูสิ
“เว็บบาคาร่าที่คนเล่นเยอะที่สุด 2025 ที่สุดของความสนุกและโอกาสแห่งความสำเร็จ!”
“เริ่มต้น สนุกได้ทุกแมตช์ ทุกเวลา”
“พบกับประสบการณ์ใหม่ที่ จีคลับ คาสิโนออนไลน์ที่ปลอดภัยและได้รับความนิยมมากที่สุดในไทย”
“เล่น ไฮโลไทย แบบออนไลน์ สนุกกับเกมพื้นบ้านที่ได้รับความนิยมสูงสุดในประเทศไทย”
“ต้องการเครดิตฟรีเล่นสล็อต? เข้าไปที่ สล็อต168เครดิตฟรี.com เว็บที่มีโปรโมชั่นเด็ดและเกมให้เลือกเล่นหลากหลาย”