Lập trình Python slides

Chương 1: Các Thành Phần Cơ Bản Của Ngôn Ngữ Lập Trình

Giới thiệu tổng quan về lập trình và ngôn ngữ Python


1: Mục tiêu chương

Sau khi học xong chương này, sinh viên có thể:

  • Hiểu được ý nghĩa của lập trình và ngôn ngữ lập trình.
  • Biết được lịch sử ra đời của Python.
  • Cài đặt và sử dụng được môi trường lập trình Python.
  • Sử dụng được tên, từ khóa, toán tử, biểu thức, kiểu dữ liệu.
  • Xây dựng được biểu thức phức tạp.
  • Áp dụng được quy tắc thụt lề và viết chú thích.

2: Lập trình và ngôn ngữ lập trình

  • Lập trình: Viết các chỉ dẫn (chương trình) để máy tính thực hiện thuật toán.
  • Ngôn ngữ lập trình: Công cụ trung gian giữa người và máy.
    • Cung cấp từ vựng, cú pháp, ngữ nghĩa.
    • Mã nguồn → dịch sang mã máy.
PythonQuiz
Python Slides

3: Lịch sử ngôn ngữ lập trình

  • 1950s: Assembly (bậc thấp, khó bảo trì).
  • 1957: FORTRAN (bậc cao đầu tiên).
  • 1960s: ALGOL (nền tảng cú pháp hiện đại).
  • 1972: C (mạnh mẽ, linh hoạt).
  • 1990s: Java, JavaScript, PHP, Ruby.
  • 2000s+: Go, Rust, Swift (hiệu suất, an toàn).

4: Giới thiệu Python

  • Ra đời: 1991 bởi Guido van Rossum.
  • Ưu điểm:
    • Cú pháp đơn giản, dễ đọc, dễ học.
    • Đa mục đích: web, game, AI, khoa học dữ liệu.
    • Cộng đồng lớn, thư viện phong phú.
  • Phiên bản mới nhất: Python 3.12 (2024).

5: Môi trường lập trình Python

Quy trình thực thi chương trình:

  1. Viết mã nguồn (.py)
  2. Biên dịch thành bytecode
  3. Thông dịch và thực thi

Công cụ hỗ trợ: IDE (Integrated Development Environment)

  • Ví dụ: Thonny, IDLE, PyCharm, VS Code.

6: Cài đặt và sử dụng Thonny

  • Thonny: IDE đơn giản, tích hợp sẵn Python.
  • Cài đặt:
    • Tải từ thonny.org
    • Chọn phiên bản phù hợp (Windows, macOS, Linux)
  • Giao diện chính:
    1. Khung viết chương trình
    2. Khung kết quả/tương tác
    3. Khung thư mục
    4. Khung hỗ trợ

7: Chế độ làm việc trong Python

  1. Chế độ tương tác (Interactive Mode):
    • Gõ lệnh trực tiếp → nhận kết quả ngay.
    • Phù hợp học tập, thử nghiệm.
  2. Chế độ kịch bản (Script Mode):
    • Viết mã vào file .py → chạy toàn bộ.
    • Phù hợp viết chương trình hoàn chỉnh.

8: Chương trình Python đầu tiên

# Chương trình đầu tiên
print("Nhập môn khoa học máy tính")
  • Dòng 1: Chú thích (bỏ qua khi chạy)
  • Dòng 2: Lệnh in ra màn hình

Kết quả:

Nhập môn khoa học máy tính

9: Câu lệnh trong Python

  • Mỗi dòng là một câu lệnh.
  • Có thể viết nhiều lệnh trên một dòng, phân cách bằng ; (không khuyến khích).
  • Xuống dòng với ký tự \ hoặc trong cặp [], {}, ().

10: Thụt đầu dòng (Indentation)

  • Quan trọng trong Python để xác định khối lệnh.
  • Ví dụ:
if n < 2:
    print(n, "nhỏ hơn 2")  # Khối lệnh này thụt 4 space
else:
    print(n, "không nhỏ hơn 2")

11: Chú thích (Comment)

  • Dùng để giải thích mã nguồn.
  • Máy tính bỏ qua khi chạy.
  • Cách viết:
    • Một dòng: # Nội dung
    • Nhiều dòng: """Nội dung""" hoặc '''Nội dung'''

12: Các phần tử cơ bản

  • Từ khóa: Từ dành riêng của Python.
    • Ví dụ: if, else, for, while, True, False, None, and, or, not,…
  • Tên (Identifier): Do người lập trình đặt, không trùng từ khóa.

13: Từ khóa (Keywords) trong Python

  • Từ khóa: Các từ được Python dành riêng, không thể dùng để đặt tên biến/hàm.
  • Phân loại từ khóa:
    • Giá trị: True, False, None
    • Toán tử: and, or, not, in, is
    • Cấu trúc rẽ nhánh: if, elif, else
    • Vòng lặp: for, while, break, continue
    • Hàm/lớp: def, class, lambda, pass
    • Biến: global, nonlocal, del
    • Xử lý lỗi: try, except, finally, assert

14: Quy tắc đặt tên (Identifier)

  • Tên: Dùng để đặt tên biến, hàm, module.
  • Quy tắc:
    • Chứa chữ cái, số, dấu gạch dưới _
    • Không bắt đầu bằng số
    • Không trùng từ khóa
    • Không chứa ký tự đặc biệt: !, @, $,…
    • Phân biệt chữ hoa/thường
  • Quy ước đặt tên (PEP-8):
    • camelCase hoặc snake_case
    • Hằng số: VIET_HOA

15: Biến và phép gán

  • Biến: Tên tham chiếu đến giá trị trong bộ nhớ.
  • Phép gán: Dùng dấu =
x = 10
print(x) # Kết quả: 10
  • Nhiều biến cùng lúc:
a, b, c = 2, 5, 8
x = y = z = 10

16: Thay đổi giá trị và kiểu biến

  • Biến có thể thay đổi giá trị và kiểu
a = 10
a = "Hello" # Chuyển từ int sang str
  • Kiểm tra kiểu: Hàm type()
print(type(a)) # <class 'str'>

17: Biểu thức (Expression)

  • Biểu thức: Kết hợp giá trị, biến, toán tử → tạo ra giá trị mới.
  • Ví dụ:
dien_tich = (day_nho + day_lon) * chieu_cao / 2

18: Phép toán số học

Toán tửÝ nghĩaVí dụ
+Cộng2 + 3 = 5
-Trừ5 - 2 = 3
*Nhân2 * 3 = 6
/Chia7 / 2 = 3.5
//Chia nguyên7 // 2 = 3
PTChia dư7 PT 2 = 1
**Lũy thừa2 ** 3 = 8

PT là Tôi dùng thay thế cho KÝ TỰ phần trăm trên bàn phím (do Blog web chặn hiển thị ký tự này)


19: Phép toán so sánh

Toán tửÝ nghĩaVí dụ
==Bằng5 == 5 → True
!=Khác5 != 3 → True
>Lớn hơn5 > 3 → True
<Nhỏ hơn5 < 3 → False
>=Lớn hơn hoặc bằng5 >= 5 → True
<=Nhỏ hơn hoặc bằng5 <= 3 → False

20: Phép toán logic

Toán tửÝ nghĩaVí dụ
andCả hai đều True → TrueTrue and False → False
orMột trong hai True → TrueTrue or False → True
notPhủ địnhnot True → False

21: Phép gán kết hợp

Toán tửVí dụTương đương
+=x += 2x = x + 2
-=x -= 2x = x - 2
*=x *= 2x = x * 2
/=x /= 2x = x / 2
//=x //= 2x = x // 2
**=x **= 2x = x ** 2

22: Thứ tự ưu tiên toán tử

  1. ** (Lũy thừa)
  2. +x, -x, ~x (Toán tử một ngôi)
  3. *, /, //, PT
  4. +, -
  5. <<, >> (Dịch bit)
  6. & (AND bit)
  7. ^ (XOR bit)
  8. | (OR bit)
  9. ==, !=, >, >=, <, <=
  10. not, and, or

Lưu ý: Dùng ngoặc () để thay đổi thứ tự ưu tiên. PT là ký tự phần trăm trên bàn phím


23: Kiểu dữ liệu cơ bản

  • Số nguyên (int):
a = 10
b = 0x69 # Hệ 16
  • Số thực (float):
c = 3.14
d = 2e5
  • Số phức (complex):
e = 3 + 4j
  • Logic (bool):
f = True
g = False
  • Xâu ký tự (str):
s1 = 'Hello'
s2 = "World"
s3 = '''Đây là xâu nhiều dòng'''

24: Kiểu dữ liệu Boolean và String

  • Boolean:
    • Chỉ nhận giá trị True hoặc False
    • Là kiểu con của số nguyên: True = 1, False = 0
gt1 = (3 < 4)  # gt1 = True
gt1 = gt1 + 2  # gt1 = 3
  • String:
    • Được viết trong: '', "", ''' ''', """ """
s1 = 'Khoa học máy tính'
s2 = "Khoa học máy tính"
s3 = '''Khoa học máy tính'''
  • Mỗi ký tự là một chuỗi độ dài 1

25: Nhập dữ liệu với input()

  • Cú pháp: ten_bien = input([lời_nhắc])
  • Luôn trả về kiểu str
  • Hàm input Đọc dữ liệu từ bàn phím, trả về kiểu str.
  • Ví dụ:
ten = input("Nhập tên của bạn: ")
tuoi = int(input("Nhập tuổi: ")) # Chuyển sang số nguyên
thu = input("Hôm nay là thứ mấy?\n") 
print("Giá trị:", thu)
print("Kiểu:", type(thu))

26: Chuyển đổi kiểu khi nhập

Chương trình Tính BMI:

Ten = input("Tên của bạn: ")
CanNang = int(input("Cân nặng (kg): "))      # Chuyển sang int
ChieuCao = float(input("Chiều cao (m): "))   # Chuyển sang float
BMI = CanNang / (ChieuCao ** 2)
print("Chỉ số BMI của bạn", Ten, "là:", BMI)

Lưu ý: Nếu nhập không đúng kiểu sẽ gây lỗi


27: In dữ liệu với print() – Tham số end

  • Mặc định: print() xuống dòng sau khi in
  • Tham số end: Giữ con trỏ trên cùng dòng
print("Hãy cho biết tên của bạn: ", end='')
ten = input()
print("\nMôn học bạn chọn: ", end='')
mon = input()

Kết quả:

Hãy cho biết tên của bạn: Khánh Chi
Môn học bạn chọn: Mĩ Thuật

28: In dữ liệu với print() – Tham số sep

  • Tham số sep: Chỉ định ký tự phân cách giữa các tham số
x, y, z, t = "Toán", "Lí", "Hoá", "Sinh"
print(x, y, z, t, sep=",")     # Toán,Lí,Hoá,Sinh
print(x, y, z, t, sep=" - ")   # Toán - Lí - Hoá - Sinh

29: Định dạng với phương thức format()

  • Cú pháp: 'chuỗi định dạng'.format(đối_số)
  • Ví dụ:
print('2^{0} = {1}'.format(8, 2**8))  # 2^8 = 256
  • Định dạng nâng cao:
print('2^{0:>3} = {1:>15}'.format(8, 2**8))
  • {0:>3}: Dành 3 vị trí, căn phải
  • {1:>15}: Dành 15 vị trí, căn phải

30: Định dạng với f-string

  • Cú pháp: f"chuỗi {biểu_thức}"
  • Cú pháp đầy đủ:
f"{<biến>[:{<độ_rộng>}.{<độ_chính_xác>}]}"
  • Ví dụ:
print(f"Chỉ số BMI của bạn {Ten} là: {BMI}")
  • Định dạng số:
print(f"Chỉ số BMI của bạn {Ten} là: {BMI:{5}.{2}}")
# Kết quả: 21.63

31: Ví dụ định dạng bảng

  • Chương trình 3.13:
print("{0}{1:>22}{2:>22}".format("Họ tên", "Chức vụ", "Thưởng"))
print(f"{Ten1:<20} {Cv1:<20} {Th1:>10}")
print(f"{Ten2:<20} {Cv2:<20} {Th2:>10}")
  • Kết quả:
Họ tên               Chức vụ               Thưởng
Lê Mai Anh Nhân viên 500000
Trần Minh Nguyên Giám đốc chi nhánh 10000000

ÔN TẬP VỚI BỘ 50 CÂU HỎI TRẮC NGHIỆM