Hướng dẫn python oop refresher - python oop làm mới

Copyright 2012, Chin

Nội dung chính

  • Sơ lược về Python
  • Giới thiệu về ngôn ngữ
  • Basic stuffs
  • Biến (variable)
  • Vòng lặp
  • Đối tượng
  • Now let's get dirty
  • Bài tập 1: cat
  • Bài tập 2: echo
  • Bài tập 3: more

Nội dung chính

  • Sơ lược về Python
  • Giới thiệu về ngôn ngữ
  • Basic stuffs
  • Biến (variable)
  • Vòng lặp
  • Đối tượng
  • Now let's get dirty
  • Bài tập 1: cat
  • Bài tập 2: echo
  • Bài tập 3: more

This work is licensed under the Creative Commons Attribution 3.0 Unported License.


Sơ lược về Python

Dưới đây là những kiến thức tóm tắt. Có thể tham khảo các nguồn khác đầy đủ hơn (có lẽ cũng dễ hơn nữa =]):

  • http://code.google.com/edu/languages/google-python-class/
  • http://www.openbookproject.net/thinkcs/python/english2e/
  • http://www.python.org/doc/

Giới thiệu về ngôn ngữ

  • Basic stuffs

  • Biến (variable)

    Vòng lặp Nên phân biệt 2 khái niệm ở đây là ngôn ngữ Python viết hoa chữ cái đầu bằng text thường và

    `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
    
    `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
    
    4 là dòng lệnh và trình thông dịch của Python.

  • Đối tượng

  • Now let's get dirty

  • Bài tập 1: cat

Basic stuffs

Biến (variable)

  • Vòng lặp

  • Đối tượng

    • Now let's get dirty

      Bài tập 1: cat

    • Bài tập 2: echo

      Bài tập 3: more

    • This work is licensed under the Creative Commons Attribution 3.0 Unported License.

      Dưới đây là những kiến thức tóm tắt. Có thể tham khảo các nguồn khác đầy đủ hơn (có lẽ cũng dễ hơn nữa =]):

      hoặc `a = "abc"` # tự động escape dấu '
      
      hoặc `a = """abc"""` # escape tất cả mọi thứ
      
    • http://www.openbookproject.net/thinkcs/python/english2e/

      Python là một ngôn ngữ thông dịch (interpreted), tức là ngôn ngữ không cần phải biên dịch một lần ra file chạy mà đọc code đến đâu chạy đến đấy.

      `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
      
      `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
      
    • Khi chạy lệnh

      `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
      
      `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
      
      4 ta sẽ có một giao diện dòng lệnh giống của Unix, có thể chạy từng dòng code Python ngay trực tiếp tại đây. Ngoài ra còn có
      `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
      
      `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
      
      5 là một phiên bản cải tiến hơn của dòng lệnh
      `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
      
      `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
      
      4 có đánh mã màu, tự động điền khi ấn tab (autocomplete) và nhiều tính năng khác khiến việc khám phá ngôn ngữ trở nên dễ dàng hơn.

      NOTE Nên phân biệt 2 khái niệm ở đây là ngôn ngữ Python viết hoa chữ cái đầu bằng text thường và

      `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
      
      `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
      
      4 là dòng lệnh và trình thông dịch của Python.

If/else

Python có mặt ở mọi nơi và dễ dàng cài đặt. Gần như tất cả các bản phân phối Linux đều cài sẵn Python, Mac OS X từ bản Lion trở đi cũng cài sẵn Python. Trên Windows có thể tải Python từ trang chủ.

if <điều kiện 1>:
    
elif <điều kiện 2>: # else + if = elif
    
elif <điều kiện n>:
    
else:
    

VD:

if age > 18:
    print('legal')
elif age == 18:
    print('barely legal')
else:
    print('go home, kid')

Python có rất nhiều module đi kèm và vô số module từ các bên thứ ba để tăng thêm tính năng cho ngôn ngữ như truy cập mạng, hệ thống file, mã hóa, giao diện đồ họa, 3D... Trong Python không dùng begin/end hay {} để đánh dấu code block mà dùng indentation (việc thụt đầu dòng) để đánh dấu. Thường dùng 4 dấu cách hoặc một phím tab để indent. Không cần đóng code block vì chỉ cần khác indent tức là khác level rồi.

VD:

level 1
    level 2
        level 3
        vẫn level 3
    quay lại level 2

Vòng lặp

  • Đối tượng

      while <điều kiện>:
          
    

    VD:

      i = 0
      while i < 5:
          print(i)
          i = i + 1
    
  • Now let's get dirty

      for  in :
          
    

    VD:

      for i in [1, 2, 3, 4]:
          print(i)
    

    Bài tập 1: cat Python có hàm range() để tạo list tự động rất phù hợp để dùng chung với

    if age > 18:
        print('legal')
    elif age == 18:
        print('barely legal')
    else:
        print('go home, kid')
    
    7.

    Bài tập 2: echo

Đối tượng

Now let's get dirty

Bài tập 1: cat

Bài tập 2: echo

Bài tập 3: more

VD:

  • This work is licensed under the Creative Commons Attribution 3.0 Unported License.

  • Dưới đây là những kiến thức tóm tắt. Có thể tham khảo các nguồn khác đầy đủ hơn (có lẽ cũng dễ hơn nữa =]):

Now let's get dirty

Bài tập 1: cat

Bài tập 1: cat

Bài tập 2: echo

Bài tập 3: more

  • This work is licensed under the Creative Commons Attribution 3.0 Unported License.

      cat > new_file.txt
    

    Dưới đây là những kiến thức tóm tắt. Có thể tham khảo các nguồn khác đầy đủ hơn (có lẽ cũng dễ hơn nữa =]):

  • http://www.openbookproject.net/thinkcs/python/english2e/

    `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
    
    `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
    
    0

Python là một ngôn ngữ thông dịch (interpreted), tức là ngôn ngữ không cần phải biên dịch một lần ra file chạy mà đọc code đến đâu chạy đến đấy.

  1. Khi chạy lệnh
    `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
    
    `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
    
    4 ta sẽ có một giao diện dòng lệnh giống của Unix, có thể chạy từng dòng code Python ngay trực tiếp tại đây. Ngoài ra còn có
    `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
    
    `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
    
    5 là một phiên bản cải tiến hơn của dòng lệnh
    `b = ['a', 'b', 'c']` -> `b[1]` = `'b'`
    
    `c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
    
    4 có đánh mã màu, tự động điền khi ấn tab (autocomplete) và nhiều tính năng khác khiến việc khám phá ngôn ngữ trở nên dễ dàng hơn.
  2. Nếu không thì lặp vô hạn việc đọc input và ghi ra output.

NOTE Để làm được bài tập này thì cần biết thêm một số khái niệm sau Để làm được bài tập này thì cần biết thêm một số khái niệm sau

  • Module

    level 1
        level 2
            level 3
            vẫn level 3
        quay lại level 2
    
    8 dùng để giao tiếp với hệ thống. Nó có một số hàm và biến khá hay ho:

    •   i = 0
        while i < 5:
            print(i)
            i = i + 1
      
      0 dùng để thoát chương trình khi cần.

    •   i = 0
        while i < 5:
            print(i)
            i = i + 1
      
      1 là một list chứa các argument của chương trình. Hãy tưởng tượng chương trình là một hàm, được hệ thống gọi, có đối số,
        i = 0
        while i < 5:
            print(i)
            i = i + 1
      
      1 cho ta truy cập các đối số đó.

      VD: Nếu chạy lệnh sau trong terminal

        i = 0
        while i < 5:
            print(i)
            i = i + 1
      
      3 thì sys.argv sẽ chứa giá trị
        i = 0
        while i < 5:
            print(i)
            i = i + 1
      
      4

  • Hàm

      i = 0
      while i < 5:
          print(i)
          i = i + 1
    
    5 dùng để nhập dữ liệu từ người dùng, luôn return một string. Có thể so sánh với
      i = 0
      while i < 5:
          print(i)
          i = i + 1
    
    6 của C và
      i = 0
      while i < 5:
          print(i)
          i = i + 1
    
    7 của Pascal.

  • Hàm

      i = 0
      while i < 5:
          print(i)
          i = i + 1
    
    8 dùng để mở file. Return một đối tượng file.

Code mẫu:

`b = ['a', 'b', 'c']` -> `b[1]` = `'b'`

`c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
1

Bài tập 2: echo

  i = 0
  while i < 5:
      print(i)
      i = i + 1
9 là lệnh để in ra màn hình. Cách dùng:

`b = ['a', 'b', 'c']` -> `b[1]` = `'b'`

`c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
2

Ý tưởng:

  1. Nếu không có argument nào thì thoát
  2. Nếu có thì nối hết lại thành một string và in ra màn hình

NOTE Để làm được bài tập này thì cần biết thêm một số khái niệm sau Để làm được bài tập này thì cần biết thêm một số khái niệm sau

  • trong đối tượng string có một hàm là hàm
      for  in :
          
    
    0 dùng để nối các phần tử của list với nhau sử dụng dấu phân cách chính là đối tượng string đang nhắc tới.

VD:

  for  in :
      
1 return kết quả là
  for  in :
      
2

Code mẫu:

`b = ['a', 'b', 'c']` -> `b[1]` = `'b'`

`c = [1, 'b', 3.5]` -> `c[1]` = `3.5`
3

Bài tập 2: echo

  i = 0
  while i < 5:
      print(i)
      i = i + 1
9 là lệnh để in ra màn hình. Cách dùng:

Ý tưởng: