ADMIN: nhanguyen@hcmut.edu.vn

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

Lập trình Python

Các tác vụ chính:

Soạn thảo mã nguồn:

  • Là câu lệnh hoặc tập hợp nhiều dòng lệnh trong tập tin dạng text
  • Có thể dùng Notepad hoặc trình soạn thảo chuyên dụng

Gọi trình thông dịch Python:

  • Trình thông dịch sẽ chuyển chương trình sang mã máy và máy tính sẽ thực thi chương trình

Dữ liệu và Giải thuật

Quan điểm về chương trình

  • Chương trình là tập hợp những chuỗi lệnh được xây dựng bởi các cấu trúc điều khiển để xử lý dữ liệu

Hai yếu tố quan trọng cấu thành chương trình

  • Dữ liệu và cấu trúc để tổ chức dữ liệu
  • Giải thuật xử lý: cách thức tổ chức, sắp xếp các chuỗi lệnh để thực hiện các tác vụ mong muốn

Hệ thống kiểu dữ liệu trong Python

  • Python sử dụng hệ thống kiểu duck typing, còn gọi là latent typing (tự động xác định kiểu). Có nghĩa là, Python không kiểm tra các ràng buộc về kiểu dữ liệu tại thời điểm dịch, mà là tại thời điểm thực thi.
    -> Khi thực thi, nếu một thao tác trên một đối tượng bị thất bại, thì có nghĩa là đối tượng đó không sử dụng một kiểu thích hợp.
  • Python cũng là một ngôn ngữ định kiểu mạnh.
    -> Cấm mọi thao tác không hợp lệ, ví dụ cộng một con số vào chuỗi ký tự.
  • Sử dụng Python, không cần phải khai báo biến.
    -> Biến được xem là đã khai báo nếu nó được gán một giá trị lần đầu tiên. Căn cứ vào mỗi lần gán, Python sẽ tự động xác định kiểu dữ liệu của biến.

Python có một số kiểu dữ liệu thông dụng sau

  • int, long: số nguyên
  • float: số thực
  • complex: số phức. VD: 5+4j
  • list: dãy trong đó các phần tử của nó có thể khác kiểu nhau và có thể thay đổi
    VD: [8, 2, ‘b’, -1.5]
  • tuple: tương tự list nhưng các phần tử của nó không thể thay đổi
  • str: chuỗi ký tự, chuỗi ký tự được đặt trong dấu nháy đơn, hoặc nháy kép
  • dict: từ điển, còn gọi là “hashtable”: là một cặp các dữ liệu được gắn theo kiểu {từ khóa: giá trị}, trong đó các từ khóa trong một từ điển nhất thiết phải khác nhau.
    VD: {1: “Python”, 2: “Pascal”}
  • set: một tập không xếp theo thứ tự, ở đó, mỗi phần tử chỉ xuất hiện một lần
Kiểu dữ liệuMô tảVí dụ
int, longsố nguyên1, 6, -250
floatsố thực1.05, -57.0
complexsố phức5+4j
listdãy trong đó các phần tử của nó có thể khác kiểu nhau và có thể thay đổi[8, 2, ‘b’, -1.5]
tupletương tự list nhưng các phần tử của nó không thể thay đổi
strchuỗi ký tự, chuỗi ký tự được đặt trong dấu nháy đơn, hoặc nháy kép‘student’, ’ku20ckt’
dicttừ điển, còn gọi là “hashtable”: là một cặp các dữ liệu được gắn theo kiểu {từ khóa: giá trị}, trong đó các từ khóa trong một từ điển nhất thiết phải khác nhau.{1: “Python”, 2: “Pascal”}
setmột tập không xếp theo thứ tự, ở đó, mỗi phần tử chỉ xuất hiện một lần

Giải thuật

Giải thuật là gì?

  • Giải thuật là các bước để giải quyết một bài toán

Làm thế nào để có giải thuật tốt?

  • Chuẩn bị tốt kế hoạch cho giải thuật
  • Một kế hoạch tốt giúp người lập trình:
    – Định hướng đúng các bước cần thiết, tổ chức tốt dữ liệu
    – iao tiếp tốt với đồng nghiệp khi làm việc chung
  • Kế hoạch không tốt làm chương trình hoạt động không hiệu quả, kết quả sai, cấu trúc rối rắm như ‘spaghetti code’

Công cụ mô tả giải thuật

Sử dụng sơ đồ (flow chart)

Dùng ‘pseudo code’ (mã giả)
Mã giả là ngôn ngữ nháy (bắt chước) theo một ngôn ngữ lập trình nào đó nhưng không bị ràng buộc bởi quy định nào của cú pháp; gần với ngôn ngữ tự nhiên.
– Không cụ thể với 1 ngôn ngữ lập trình nào.
– Phác thảo được cấu trúc của code
– Người đọc có thể hiểu
VD:   if number <= 10 then          ouput small number sentence

Dùng chính mã lập trình

  • Chỉ nên dùng để trao đổi giữa những người có cùng chuyên môn với nhau
  • Có thể chuyển ngữ dễ dàng và có chương trình thực thi ngay
  • Không nên dùng mã này để trình bày cho các đối tượng người dùng không chuyên nghiệpKhông cụ thể với 1 ngôn ngữ lập trình nào