[Programming] Hướng dẫn lập trình Python |
04/01/2008 04:00:46 (+0700) | #1 | 108082 |
|
onlinehack
Member
|
0 |
|
|
Joined: 04/12/2007 23:07:12
Messages: 116
Location: Ma maison
Offline
|
|
Python là ngôn ngữ lập trình được quan tâm bởi tính đơn giản và dễ sử dụng. Nó thường được giới thiệu cho những "programming newcomer" như một điểm khởi đầu tốt. Python cũng là chương trình thông dịch các chương trình viết bằng ngôn ngữ này. Có các phiên bản bổ sung khác của Python, như Jython , CLPython, IronPython ... Ở đây, chúng ta chỉ sử dụng Python
Cài đặt Python
Cài đặt Python và chạy là bước đầu tiên. Nó có thể rất dễ dàng. Nếu bạn đang sử dụng Gentoo GNU/Linux, bạn đã có sẵn Python 2.4 được cài đặt. Hệ thông packaging cho Gentoo, Portage, được viết bằng Python .
Nếu bạn đang chạy Debian GNU/Linux, Ubuntu, Kubuntu và MEPIS, hãy chạy lệnh sau :
Code:
sudo apt-get install python
Nếu bạn đang sử dụng các Linux distro khác, có thể Python là các package được chuẩn bị trước cho nó. Sử dụng tài nguyên và công cụ thông thường bạn sử dụng cho các package khác để tìm Python package
Nếu bạn không làm được tất cả các điều trên, bạn cần phải cài đặt bằng tay. Nó không khó, nhưng cần phải chú ý là dễ làm hỏng hệ thống của bạn trừ khi bạn làm theo hướng dẫn đơn giản này : cài đặt Python vào một vị trí độc lập, ví dụ /opt/python/2.4.3 hay gì đó tuỳ phiên bản Python ...
Để thực hiện cài đặt, download Python , unpack và chạy lênh sau :
Code:
./configure --prefix=/opt/python2.4/
make
make install
Cùng bắt đầu
Chúng ta bắt đầu tìm hiểu về phần lập trình, để khởi đầu, ta xây dựng một công cụ blog đơn giản, không có giao diện như Web, nhưng nó là một bài tập tốt.
Python đi kèm với REPL - một phát minh của cộng đồng Lisp. REPL là viết tắt của cụm từ Real Eval Print Loop, và nó có nghĩa là đây là chương trình có thể đọc được các biểu thức và câu lệnh, đánh giá, in kết quả và đợi . Giờ ta chạy REPL ( nhớ điều chỉnh được dẫn của bạn theo vị trí bạn đã cài đặt Python trước đây )
Code:
$ python
Python 2.4.3 (#1, Sep 1 2006, 18:35:05)
[GCC 4.1.1 (Gentoo 4.1.1)] on linux2
Type "help", "copyright", "credits" or "license" for
more information.
>>>
3 dấu lớn hơn ( >>> ) là dấu nhắc của Python, bạn sẽ viết các câu lệnh và biểu thức vào đây. Để thoát khỏi chương trình, nhấn Ctrl-D
Thử một vài biểu thức đơn giản:
Code:
Giá trị của 5, tất nhiên = 5.
Code:
Thú vị hơn không nào?
Có các kiểu biểu thức khác, như là một chuỗi:
>>> "Xin chao"
'Xin chao'
Dấu nháy được sử dụng để tạo chuỗi. Dấu nháy đơn hay kép đều như nhau. Trong thực tế, bạn có thể thấy ta đã sử dụng nháy kép, nhưng Python trả lại là nháy đơn.
Giờ ta thử một danh sách
Code:
Dấu ngoặc vuông được sử dụng để tạo các danh sách, mỗi item được phân cách bởi một dấu phẩy. Và như có thể cộng các số, ta có thể cộng ( hay ghép) các danh sách :
Code:
>>> [1,3,2] + [11,3,2]
[1, 3, 2, 11, 3, 2]
Giờ, chúng ta chuyển sang một thứ thú vị hơn , blog. Blog là một chuỗi các bài viết, và danh sách Python là một cách tốt để tái hiện một blog, với bài viết và chuỗi. Trong REPL, chúng ta có thể làm một blog đơn giản thế này :
Code:
>>> ["Entry thu nhat", "Python that tuyet"]
['Entry thu nhat', 'Python that tuyet']
>>>
Đó là một danh sách các chuỗi. Bạn có thể tạo một danh sách bất cứ cái gì bạn muốn, bao gồm cả danh sách của danh sách. Hạn chế là tất cả các biểu thức sẽ được đánh giá, trình bày và biến mất. Chúng ta không có cách nào để gọi blog lại và thêm cho chúng các item khác hay xem lại chúng.Do đó, ta thực hiện phép gán :
Code:
>>> blog = ["Entry thu nhat", "Python that tuyet"]
>>>
Giờ blog là một biến chứa danh sách. Không giống các ví dụ trước, không có gì được in ra tại thời điểm này, vì nó chỉ là một phép gán. Phép gán là một câu lệnh, và câu lệnh không trả lại giá trị. Đơn giản đánh giá biến cho chúng ta thấy nội dung :
Code:
>>> blog
['Entry thu nhat', 'Python that tuyet']
Truy cập blog của bạn thật dễ dàng. Chúng ta nhận biết mỗi bài viết bằng 1 số :
Code:
>>> blog[0]
'Entry thu nhat'
>>> blog[1]
'Python that tuyet'
Chú ý rằng Python bắt đầu đếm từ 0 .
còn tiếp... |
|
|
|
|
[Question] Re: Hướng dẫn lập trình Python |
04/01/2008 12:43:39 (+0700) | #2 | 108219 |
|
onlinehack
Member
|
0 |
|
|
Joined: 04/12/2007 23:07:12
Messages: 116
Location: Ma maison
Offline
|
|
Tóm lược cách hoạt động
Một blog sẽ không phải là một blog nếu bạn không thể thêm bài viết mới, do đó, bạn làm thế này:
Code:
>>> blog = blog + ["Entry moi"]
>>> blog
['Entry dau tien', 'Python that tuyet', 'Entry moi']
Ở đây ta thêm cho blog một giá trị mới, là blog cũ , và một entry mới. Chúng ta có thể rút gọn trong một hàm :
Code:
>>> def add_entry(blog, new_entry):
... return blog + [new_entry]
...
>>>
def là từ khóa được sử dụng để định nghĩa một hàm hoặc một phương thức mới ( chúng ta sẽ nói nhiều hơn về các hàm trong lập trình có cấu trúc và phương thức trong lập trình hướng đội tượng trong chủ đề này ) , tiếp theo là tên hàm. Trong dấu ngoặc đơn, chúng ta có các tham số chính thức.Sau dấu hai chấm, dấu nhắc đã chuyển từ >>> sang ... để cho thấy ta đang ở trong 1 hàm. Một hàm được bao gồm tất cả các dòng được lùi vào (theo bậc) so với dòng def.
Khi các ngôn ngữ lập trình khác sử dụng các dấu ngoặc hoặc từ khoá begin/end, Python sử dụng sự lùi vào ở đầu dòng. Ý tưởng ở đây là nếu bạn là lập trình viên giỏi, bạn sẽ tự làm việc đó.Đây là một vấn đề gây tranh luận; có thể bạn không thích nó lúc ban đầu, nhưng bạn phải học để làm việc đó
Khi làm việc với REPL, bạn có thể an toàn nhấn Tab để tạo một bậc lùi vào, và cho dù phím Tab có thể làm việc đó, sử dụng 4 lần space là một cách giới thiệu nhiều hơn. Nhiều text editor biết cách đặt 4 lần space khi bạn nhấn Tab khi chỉnh sửa file Python. Nhưng bạn đừng bao giờ kết hợp giữa Tab và space.Trong các ngôn ngữ lập trình khác, nó có thể làm cộng đồng không thích bạn, nhưng trong Python, nó có thể làm chương trình gặp những thông báo lỗi khó hiểu
Để luyện tập, chúng ta cùng tiếp tục làm, nhập header của lớp def add_entry(blog, new_entry):, nhấn Enter, nhấn Tab, nhập return blog + [new_entry] , nhấn Enter, nhấn Enter lần nữa.Chúng ta sẽ thấy :
Code:
>>> blog = add_entry(blog, "Entry thu 4")
>>> blog
['Entry dau tien', 'Python that tuyet', 'Entry moi',
'Entry thu 4']
>>>
add_entry sử dụng 2 tham số. Đầu tiên là chính blog, và nó được gán vào blog. Đó là một mánh khoé. Cái blog bên trong hàm không giống với blog bên ngoài hàm. Chúng ở các phạm vi khác nhau. Do đó
Code:
>>> def add_entry(blog, new_entry):
... blog = blog + [new_entry]
không làm việc, blog chỉ được chỉnh sửa bên trong hàm.
Blog của chúng ta lớn dần lên, và trước đây bài viết chỉ là những chuỗi đơn giản, giờ chúng ta muốn nó có cả tiêu đề và thân. Chúng ta có thể làm thế này :
Code:
>>> blog = []
>>> blog = add_entry(blog, ("Blog moi", "Entry dau tien"))
>>> blog = add_entry(blog, ("Tuyet ", "Python that tuyet"))
>>> blog
[('Blog moi', 'Entry dau tien'),
('Tuyet', 'Python that tuyet')]
>>>
Ở dòng thứ nhất, ta reset blog thành một danh sách trống. Sau đó, thêm 2 bài viết.
Danh sách các bài viết được tạo ra bởi các dấu ngoặc, và các thành phần được phân cách bởi các dấu phẩy. Nó tương tự với một danh sách, nhưng chúng khác nhau. Nó được gọi là tuple. Bạn có thể cập nhật thành phần của một tuple. Các tuple được sử dụng để xây dựng một vài kiểu cấu trúc với các thành phần cố định. Lấy ví dụ
Code:
Truy cập từng phần của bài viết cũng tương tự truy cập từng phần của blog
>>> blog[0][0]
'Blog moi'
>>> blog[0][1]
'Entry dau tien'
Đây có thể là một giải pháp tốt nếu bạn muốn lưu giữ chỉ tiêu đề và nội dung bài viết. Nhưng , khi ta muốn thêm vào ngày và thời gian, trích dẫn, tag hay tin nhắn ? Bạn có thể bắt đầu nghĩ bạn cần treo một tờ giấy lên tường, để nhớ mục lục của từng trường, như thế này :
Thật không dễ chịu chút nào . Để giải quyết vấn đề này. Python đưa đến cho chúng ta lập trình hướng đối tượng ..
Còn tiếp...
Tham khảo LinuxJournal |
|
|
|
|
[Question] Re: Hướng dẫn lập trình Python |
05/01/2008 06:59:18 (+0700) | #3 | 108364 |
RonRoyII
Member
|
0 |
|
|
Joined: 15/11/2007 14:41:12
Messages: 4
Offline
|
|
Bác có thể cho tôi ebook để tự hoc có phải là tốt hơn ko bác hướng dẫn như vay khó hoc lém phiền bác cho ebool đi!
|
|
|
|