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:
- Viết mã nguồn (.py)
- Biên dịch thành bytecode
- 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:
- Khung viết chương trình
- Khung kết quả/tương tác
- Khung thư mục
- Khung hỗ trợ
7: Chế độ làm việc trong Python
- 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.
- 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ính9: 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'''
- Một dòng:
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,…
- Ví dụ:
- 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
- Giá trị:
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
- Chứa chữ cái, số, dấu gạch dưới
- Quy ước đặt tên (PEP-8):
camelCasehoặcsnake_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 = 1016: 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 / 218: Phép toán số học
| Toán tử | Ý nghĩa | Ví dụ |
|---|---|---|
+ | Cộng | 2 + 3 = 5 |
- | Trừ | 5 - 2 = 3 |
* | Nhân | 2 * 3 = 6 |
/ | Chia | 7 / 2 = 3.5 |
// | Chia nguyên | 7 // 2 = 3 |
| PT | Chia dư | 7 PT 2 = 1 |
** | Lũy thừa | 2 ** 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ĩa | Ví dụ |
|---|---|---|
== | Bằng | 5 == 5 → True |
!= | Khác | 5 != 3 → True |
> | Lớn hơn | 5 > 3 → True |
< | Nhỏ hơn | 5 < 3 → False |
>= | Lớn hơn hoặc bằng | 5 >= 5 → True |
<= | Nhỏ hơn hoặc bằng | 5 <= 3 → False |
20: Phép toán logic
| Toán tử | Ý nghĩa | Ví dụ |
|---|---|---|
and | Cả hai đều True → True | True and False → False |
or | Một trong hai True → True | True or False → True |
not | Phủ định | not True → False |
21: Phép gán kết hợp
| Toán tử | Ví dụ | Tương đương |
|---|---|---|
+= | x += 2 | x = x + 2 |
-= | x -= 2 | x = x - 2 |
*= | x *= 2 | x = x * 2 |
/= | x /= 2 | x = x / 2 |
//= | x //= 2 | x = x // 2 |
**= | x **= 2 | x = x ** 2 |
22: Thứ tự ưu tiên toán tử
**(Lũy thừa)+x,-x,~x(Toán tử một ngôi)*,/,//,PT+,-<<,>>(Dịch bit)&(AND bit)^(XOR bit)|(OR bit)==,!=,>,>=,<,<=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ị
TruehoặcFalse - Là kiểu con của số nguyên:
True = 1,False = 0
- Chỉ nhận giá trị
gt1 = (3 < 4) # gt1 = True
gt1 = gt1 + 2 # gt1 = 3- String:
- Được viết trong:
'',"",''' ''',""" """
- Đượ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ểustr. - Ví dụ:
ten = input("Nhập tên của bạn: ")
tuoi = int(input("Nhập tuổi: ")) # Chuyển sang số nguyênthu = 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ật28: 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á - Sinh29: Đị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.6331: 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
