Image default
Máy Tính

Khám Phá 5 “Easter Eggs” Độc Đáo và Thú Vị Ẩn Giấu Trong Ngôn Ngữ Lập Trình Python

Bạn có biết Python có nhiều “easter eggs” ẩn thú vị không? Hóa ra, ngôn ngữ lập trình yêu thích của bạn không chỉ hữu ích trong việc xây dựng ứng dụng mà còn ẩn chứa những điều hài hước độc đáo. Hãy cùng tincongnghemoi.com khám phá những “bí mật” công nghệ thú vị nhất trong Python để làm phong phú thêm kiến thức lập trình của bạn!

5. “Hello World” theo phong cách không ngờ tới

Nếu bạn đã từng viết code bằng bất kỳ ngôn ngữ nào, rất có thể chương trình đầu tiên của bạn là in “Hello World” ra màn hình console. Trong Python, bạn có thể dễ dàng làm điều đó chỉ với một dòng code đơn giản:

print("Hello World")

Tuy nhiên, có một cách tinh tế và ít người biết đến hơn để thực hiện việc này. Bạn có thể nhập một module có tên là __hello__ để in nó.

import __hello__

Kể từ phiên bản Python 3.11, bạn cần gọi phương thức main của nó để thực sự in văn bản.

import __hello__
__hello__.main()

Tương tự như module __hello__, cũng có một module __phello__ hoạt động tương tự.

import __phello__
__phello__.main()

Kết quả in 'Hello, World!' trên console bằng module __phello__ trong Python.Kết quả in 'Hello, World!' trên console bằng module __phello__ trong Python.

Module __phello__ thậm chí còn có một thuộc tính spam mà bạn có thể gọi để in thông báo hai lần. Tính năng này hoạt động trong các phiên bản Python cũ hơn 3.11.

import __phello__.spam

Hiển thị 'Hello, World!' hai lần bằng cách nhập thuộc tính spam từ module __phello__ trong Python.Hiển thị 'Hello, World!' hai lần bằng cách nhập thuộc tính spam từ module __phello__ trong Python.

Trong thực tế, các module này được thêm vào Python để kiểm tra xem các “frozen modules” có hoạt động như mong đợi hay không, như đã được đề cập trong mã nguồn CPython.

In order to test the support for frozen modules, by default we define some simple frozen modules: __hello__, __phello__ (a package), and __phello__.spam. Loading any will print some famous words... 

Vì vậy, lần tới khi bạn muốn in ‘Hello, World!’, hãy thử mẹo này để có một trận cười hoặc gây ấn tượng với đồng nghiệp về kiến thức Python độc đáo của mình.

4. “Zen of Python” – Triết lý lập trình sâu sắc

Mỗi ngôn ngữ lập trình đều có những quy tắc, triết lý và các phương pháp tốt nhất. Python cũng không phải là ngoại lệ. Tim Peters, một trong những người đóng góp chính cho ngôn ngữ lập trình Python, đã viết ra một bộ nguyên tắc để viết code bằng Python, được biết đến rộng rãi với tên gọi “Zen of Python”. Tác phẩm văn học kỹ thuật này thậm chí còn được tích hợp ngay vào chính ngôn ngữ. Để đọc nó, tất cả những gì bạn phải làm là chạy câu lệnh:

import this

Bạn sẽ thấy “Zen of Python” được in trên màn hình với những triết lý lập trình sâu sắc như:

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!

Triết lý 'Zen of Python' được hiển thị trong cửa sổ shell của Python.Triết lý 'Zen of Python' được hiển thị trong cửa sổ shell của Python.

Nếu bạn nhìn vào mã nguồn thực tế của tệp, bạn sẽ khám phá ra một điều thú vị. Văn bản được in ra ban đầu đã được mã hóa.

s = """Gur Mra bs Clguba, ol Gvz Crgref

Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcnefr vf orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
Nygubhtu cenpgvpnyvgl orngf chevgl.
Reebef fubhyq arire cnff fvyragyl.
Hayrff rkcyvpvgyl fvyraprq.
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
Abj vf orggre guna arire.
Nygubhtu arire vf bsgra orggre guna *evtug* abj.
Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

Có một đoạn mã khác đang thực hiện việc chuyển đổi văn bản đã cho.

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]))

Vậy, điều gì đang xảy ra ở đây? Văn bản gốc đã được mã hóa bằng một thuật toán thay thế gọi là ROT13. Đây là một thuật toán đảo ngược được. Khi bạn nhập module this, văn bản đã mã hóa đó sẽ được giải mã trở lại dạng gốc và in ra màn hình. Đây thực sự là một “easter egg” thể hiện sự tinh tế trong việc xây dựng ngôn ngữ Python.

3. Ngoặc nhọn? Không bao giờ!

Nếu bạn đã từng sử dụng Python dù chỉ một chút, bạn sẽ biết rằng Python hiếm khi sử dụng dấu ngoặc nhọn {} – một cú pháp rất phổ biến trong nhiều ngôn ngữ lập trình khác. Dấu ngoặc nhọn thường được dùng để định nghĩa phạm vi của một khối code, chẳng hạn như điều kiện, vòng lặp, v.v. Thay vào đó, Python sử dụng thụt lề để xác định cấu trúc. Nhưng liệu sẽ có lúc nào dấu ngoặc nhọn xuất hiện trong Python không? Rất khó có khả năng! Bởi vì các nhà phát triển đã trả lời câu hỏi này ngay trong module __future__.

from __future__ import braces
>>> SyntaxError: not a chance

Đây là một lỗi cú pháp đặc biệt mà bạn sẽ không tìm thấy trong bất kỳ trường hợp nào khác, ngụ ý rằng dấu ngoặc nhọn sẽ không bao giờ xuất hiện trong Python. Module __future__ trong Python được sử dụng để triển khai các tính năng trong phiên bản Python hiện tại sẽ được tích hợp vào phiên bản tương lai. Điều này được thực hiện để bạn có thể thích nghi với tính năng mới. Việc đặt “easter egg” này vào module này là một lựa chọn rất thông minh.

2. FLUFL: Toán tử bất đẳng thức của Uncle Barry

Module __future__ còn chứa một “easter egg” thú vị khác. Nếu bạn đã từng sử dụng các toán tử logic trong lập trình, bạn sẽ biết rằng trong hầu hết các ngôn ngữ, ký hiệu cho bất đẳng thức là != (dấu chấm than theo sau là dấu bằng). Tuy nhiên, một trong những nhà phát triển cốt lõi của Python, Barry Warsaw, còn được biết đến với biệt danh Uncle Barry, lại thích sử dụng toán tử kim cương <> cho bất đẳng thức. Đây là đoạn code chứng minh:

from __future__ import barry_as_FLUFL
0 != 1
>>> SyntaxError: with Barry as BDFL, use '' instead of '!='
0 <> 1
>>> True
1 <> 1
>>> False

Ví dụ sử dụng toán tử dạng kim cương làm toán tử bất đẳng thức trong Python.Ví dụ sử dụng toán tử dạng kim cương làm toán tử bất đẳng thức trong Python.

FLUFL là viết tắt của “Friendly Language Uncle For Life”, đây dường như là chức danh của Uncle Barry. Đây là một chi tiết công nghệ thú vị, cho thấy sự “cá tính” của các nhà phát triển trong việc định hình ngôn ngữ lập trình.

1. Khám phá antigravity

Một module thú vị khác để bạn khám phá là antigravity. tincongnghemoi.com sẽ không tiết lộ quá nhiều, nhưng bạn hãy chạy đoạn code này và tự mình trải nghiệm nhé:

import antigravity

Module này cũng có một hàm geohash(). Hàm này được sử dụng để geohashing bằng thuật toán Munroe.

Thoạt nhìn, điều này có vẻ hoàn toàn không liên quan. Tuy nhiên, hàm này có mối liên hệ mật thiết với “easter egg” trước đó mà bạn đã thấy trong module antigravity. Những điều nhỏ nhặt này tạo nên sự độc đáo và thú vị của Python.

Thật luôn hấp dẫn khi tìm hiểu những câu chuyện hậu trường về các ngôn ngữ lập trình, đặc biệt nếu chúng mang lại nụ cười trên khuôn mặt bạn. Nếu những điều này khiến bạn thích thú, bạn có thể cân nhắc học lập trình Python và thực hiện nhiều điều thú vị hơn với nó. Hãy chia sẻ cảm nhận của bạn về những “easter eggs” này và đừng quên theo dõi tincongnghemoi.com để khám phá thêm nhiều mẹo và thủ thuật công nghệ hữu ích khác!

Related posts

Hướng Dẫn Chi Tiết Cách Tạo Bài Thuyết Trình Tương Tác Trong PowerPoint Giống Prezi

Administrator

Gmail Ra Mắt Tính Năng “Quản Lý Đăng Ký” Mới: Dọn Dẹp Hộp Thư Đến Dễ Hơn Bao Giờ Hết

Administrator

Tối ưu hiệu suất Excel với phím F9: Hướng dẫn từ A đến Z

Administrator