Python cơ bản¶
Python Basics
Hello, World¶
# Chương trình đầu tiên: In ra màn hình câu "Hello, World!"
print("Hello, World!")
Thực thi chương trình Python¶
Chạy từng dòng lệnh¶
Các bước thực hiện:
- Mở cửa sổ chế độ dòng lệnh (terminal).
- Nhập
python
(hoặcpython3
) và nhấnEnter
để mở Python chế độ tương tác. - Nhập từng dòng lệnh để thực thi.
Ví dụ:
Chạy file mã nguồn từ chế độ dòng lệnh¶
- Mở cửa sổ dòng lệnh (terminal).
- Nhập
python <[path_to/]python_script_file_name.py>
và nhấnEnter
để thực thi. Trình thông dịch sẽ lần lượt thực hiện các lệnh trong file mã nguồn.
Thực thi chương trình Python từ môi trường phát triển tích hợp (IDE)¶
- Mở IDE lập trình Python ưa thích (PyCharm, VS Code, Spyder, IDLE,...).
- Tạo (hoặc mở) file chương trình Python.
- Nhấn lệnh
Run
để thực thi chương trình.
Khối lệnh¶
- Python sử dụng khoảng canh lề (indentation) để giới hạn khối lệnh.
- Số khoảng trắng trước khối lệnh ít nhất là 1, thông dụng nhất là 4.
- Trong một khối lệnh, số khoảng trắng đứng trước mỗi dòng lệnh phải bằng nhau.
Ví dụ:
n = int(input("Nhập một số nguyên:"))
if n % 2 == 0:
print("%d là số chẵn" % n)
else:
print("%d là số lẻ" % n)
Kiểu dữ liệu và biến¶
Biến¶
- Biến là đối tượng dùng để lưu dữ liệu.
- Giá trị của biến có thể thay đổi khi chương trình hoạt động.
-
Python không có lệnh khai báo biến, biến được tạo ra khi gán giá trị cho nó.
-
Tên biến đặt theo quy tắc sau:
- Tên biến chỉ gồm các ký tự chữ cái, chữ số và dấu gạch dưới '_'.
- Tên biến phải bắt đầu bằng chữ cái hoặc ký tự gạch dưới.
- Không được đặt tên biến trùng với từ khóa của Python.
Ví dụ:
-
Tên biến hợp lệ:
delta
,x1
,don_gia
,_123abc
-
Tên biến không hợp lệ:
3VanChinNghin
: bắt đầu bằng chữ sốDon Gia
: chứa khoảng trắngexcept
: trùng với từ khóa của Python
Note
- Ngôn ngữ Python phân biệt chữ hoa chữ thường (case-sensitive), nên các tên sau là khác nhau:
TinHoc
,Tinhoc
,tinHoc
. - Nên đặt tên biến ngắn gọn, có nghĩa (diễn tả nội dung nó chứa). Ví dụ, để viết lệnh tính quãng đường đi dựa vào vận tốc và thời gian, thay vì viết
d = v*t
, nên viếtdistance = velocity * traveled_time
hoặcquang_duong = van_toc * thoi_gian
, sẽ giúp câu lệnh dễ hiểu hơn. - Với Python 3, có thể đặt tên biến bằng ký tự Unicode (gồm cả tiếng Việt), chẳng hạn:
Ba_Vạn_Chín_Nghìn = 39000
là một khai báo hợp lệ. Tuy nhiên, chỉ nên đặt tên biến bằng các ký tự ASCII.
Kiểu dữ liệu¶
Kiểu dữ liệu của một biến được xác định khi gán giá trị cho nó.
Python có các kiểu dữ liệu cơ sở sau:
Kiểu chuỗi (text)¶
Chuỗi là dãy ký tự đặt trong cặp dấu nháy kép "" hoặc nháy đơn ''.
Ví dụ:
# Dạng chuỗi 1: đặt giữa cặp dấu nháy kép
ntu_slogan1 = "Lựa chọn đúng để thành công!"
print(ntu_slogan1)
# Dạng chuỗi 2: đặt giữa cặp dấu nháy đơn
ntu_slogan2 = 'Căng buồm tri thức vươn khơi.'
print(ntu_slogan2)
# Dạng chuỗi 3: chuỗi gồm nhiều dòng
verses = """
'Trải qua một cuộc bể dâu
Những điều trông thấy mà đau đớn lòng.'
\t\t- trích Truyện Kiều (Nguyễn Du)
"""
print(verses)
Kiểu số (numeric)¶
Python có các kiểu số nguyên (int), số thực (float) và số phức (complex).
Ví dụ:
# Kiểu số nguyên
n = 3721
print("n = %d" % n)
# Kiểu số thực
pi = 3.14159
print("PI = %.2f" % pi)
# Số phức
z = 3 + 5j
print("z = ", z)
Kiểu tuần tự (sequence)¶
- Kiểu danh sách (sequence): list, tuple, range
- Kiểu từ điển (mapping): dict
- Kiểu tập hợp (set): set, frozenset
Kiểu Boolean: bool¶
Kiểu bool có giá trị True
hoặc False
.
Ví dụ:
fruits = {'bưởi', 'táo', 'đu đủ', 'cam'}
is_apple_in_fruits = 'táo' in fruits
print(is_apple_in_fruits)
is_durian_in_fruits = 'durian' in fruits
print(is_durian_in_fruits)
Kiểu None (NoneType)¶
Kiểu dữ liệu None
dùng để chỉ một biến hoặc đối tượng không có giá trị.
Note
Dùng hàm type()
để lấy kiểu dữ liệu của một biến hoặc biểu thức.
Ví dụ:
n = 3721
print("Kiểu dữ liệu là ", type(n).__name__)
PI = 3.1416
print("Kiểu dữ liệu là ", type(PI).__name__)
four_seasons = ['Xuân', 'Hạ', 'Thu', 'Đông']
print("Kiểu dữ liệu là ", type(four_seasons).__name__)
fruits = {"bưởi", "táo", "cam", "chanh"}
print("Kiểu dữ liệu là ", type(fruits).__name__)
student_info = {'ID':'65131234', 'grades':{'python':8.5, 'maths':7.8}}
print("Kiểu dữ liệu là ", type(student_info).__name__)
numbers = (3,7,2,1)
print("Kiểu dữ liệu là ", type(numbers).__name__)
greeting_message = 'Welcome to Nha Trang!'
print("Kiểu dữ liệu là ", type(greeting_message).__name__)
Các câu lệnh điều khiển¶
Lệnh rẽ nhánh if¶
Dạng 1: Lệnh if thiếu¶
- Nếu
<BT logic>
có giá trị đúng (True) thì thực hiện<Lệnh đơn>
hoặc<Khối lệnh>
if <BT logic>: <Lệnh đơn>
hoặc
if <BT logic>:
<Khối lệnh>
Ví dụ:
n = 5
if n % 2 != 0: print(f'{n} là số lẻ.')
m = 69
if m > 0:
print(f'm = {m}')
print(f'{m} là số dương.')
Dạng 2: Lệnh if đủ¶
- Nếu
<BT logic>
có giá trị đúng (True) thì thực hiện<Khối lệnh 1>
, ngược lại thực hiện<Khối lệnh 2>
if <BT logic>:
<Khối lệnh 1>
else:
<Khối lệnh 2>
Hoặc viết gọn hơn khi chỉ có lệnh đơn:
<Lệnh 1> if <BT logic> else <Lệnh 2>
Ví dụ:
n = 5
if n % 2 != 0:
print(f'{n} là số lẻ.')
else:
print(f'{n} là số chẵn.')
a, b = 6, 9
print(f'{a} > {b}') if a > b else print(f'{b} > {a}')
elif¶
- Trong lệnh if, muốn kiểm tra điều kiện mới khi điều kiện trước không thỏa mãn thì dùng từ khóa
elif
if <BT logic 1>:
<Khối lệnh 1>
elif <BT logic 2>:
<Khối lệnh 2>
...
elif <BT logic n>:
<Khối lệnh n>
else:
<Khối lệnh n+1>
Lệnh lặp¶
Lệnh lặp while¶
- Lệnh lặp
while
lặp lại khối lệnh chừng nàoBT điều kiện
còn đúng.
while <BT điều kiện>:
<Khối lệnh>
Ví dụ: Tính tổng các chữ số của số tự nhiên n:
n = 123
sum_digits = 0
while n > 0:
sum_digits += n % 10
n = n // 10
print(f'Tổng chữ số = {sum_digits}')
Lệnh break¶
- Lệnh `break' khi được gọi sẽ dừng vòng lặp.
- Trong ví dụ sau, dù điều kiện lặp là
i < 100
, nhưng nếu i bằng 5 thì dừng vòng lặp, nên chương trình chỉ in ra các số nguyên liên tiếp từ 1 đến 4.
i = 1
while i < 100:
print(i, end= ' ')
i += 1
if i == 5: break
Lệnh continue¶
- Lệnh `continue' khi được gọi sẽ chuyển sang vòng lặp kế tiếp.
- Trong ví dụ sau, biến i khởi đầu bằng 0, chừng nào i còn thỏa
< 10
thì tăng i thêm 1 và in ra giá trị của i, nhưng nếu i là số chẵn thì lệnhcontinue
được gọi, chương trình chuyển sang xử lý bước lặp tiếp theo mà bỏ qua lệnhprint(i, end=' ')
. Kết quả là chương trình chỉ in ra các số lẻ từ 1 đến 9.
i = 0
while i < 10:
i += 1
if i % 2 == 0: continue
print(i, end= ' ')
Lệnh lặp for¶
- Lệnh lặp
for
dùng để duyệt từng phần tử trong một dãy (list, tuple, dictionary, set, string).
Duyệt danh sách¶
- Cú pháp
for <biến chạy> in <danh sách>:
<Khối lệnh>
- Ví dụ
Tứ_Linh = ['Long', 'Ly', 'Quy', 'Phượng']
# Cách 1: duyệt từng phần tử của danh sách
for tl in Tứ_Linh:
print(tl, end=' ')
# Cách 2: duyệt từng phần tử thông qua vị trí trong danh sách
for i in range(len(Tứ_Linh)):
print(Tứ_Linh[i], end=' ')
Duyệt chuỗi ký tự¶
- Chuỗi là một dãy ký tự vì thế có thể duyệt từng ký tự của chuỗi bằng lệnh for.
- Cú pháp
for ch in <chuỗi>:
<Lệnh>
- Ví dụ
st = 'Nha Trang Khánh Hòa'
for ch in st:
print(ch)
Hàm range()¶
- hàm
range(<start_value>, <end_value>, <step>)
thường được kết hợp khi muốn thực hiện lệnh lặp với số bước lặp xác định. - Ví dụ: In 10 dòng 'Hello world'
for i in range(10): # range(0, 10, 1)
print('Hello world')
Lệnh lặp lồng nhau (nested loop)¶
- Lệnh lặp lồng nhau: Trong một lệnh lặp chứa lệnh lặp khác.
- Với mỗi bước lặp của vòng lặp ngoài, lệnh lặp bên trong sẽ thực hiện hết một lượt.
- Ví dụ: In bảng cửu chương
for i in range(2, 10):
for j in range(1, 11):
print('%3d x %3d = %3d' % (i, j, i*j))