Theo mặc định, các câu lệnh trong chương trình python được thực thi tuần tự từ trên xuống dưới. Nếu gặp phép so sánh, luồng thực thi tuần tự có thể được thay đổi theo hai cách:
-
Thực thi có điều kiện: một khối gồm một hoặc nhiều câu lệnh sẽ được thực hiện nếu một biểu thức nhất định nào đó đúng.
-
Thực thi lặp đi lặp lại: một khối gồm một hoặc nhiều câu lệnh sẽ được thực hiện lặp đi lặp lại miễn là một biểu thức nào đó đúng.
Chưa đầy đủ (if)
Trong python và các ngôn ngữ lập trình khác, câu lệnh if được sử dụng để kiểm tra xem một điều kiện có đúng không nhằm thực thi một câu lệnh hay khối lệnh nào đó.
- Cú pháp:
if condition: <câu lệnh>
- Nếu condition (điều kiện) là đúng thì thực hiện câu lệnh.
a = 5
b = 10
if (a < b):
print(b, 'là số lớn hơn', a)
Như bạn có thể thấy trong ví dụ trên, 5 nhỏ hơn 10. Điều kiện là đúng và câu lệnh tiếp theo sẽ được thực thi. Tuy nhiên, nếu điều kiện sai, chúng ta không thấy kết quả (tức câu lệnh tiếp theo không được thực thi). Để thực thi các câu lệnh khi điều kiện sai, chúng ta sử dụng từ khóa else trong câu điều kiện.
Đầy đủ (if-else)
- Cú pháp:
if condition: <câu lệnh 1> else: <câu lệnh 2>
- Nếu condition (điều kiện) là đúng thì thực hiện câu lệnh 1. Ngược lại, thì thực hiện câu lệnh 2.
a = 3
if a < 0:
print('A là một số âm')
else:
print('A là một số dương')
Trong ví dụ trên, 3 nhỏ hơn 0 tức là điều kiện sai, do đó khối sau else sẽ được thực thi. Vậy làm thế nào nếu nhiều hơn hai điều kiện? Ta có thể sử dụng _elif_
.
if-elif-else
if condition1: # Nếu condition1 là đúng thì
# Thực hiện các câu lệnh 1
elif condition2: # Ngược lại, nếu condition2 đúng thì
# Thực hiện các câu lệnh 2
elif condition3: # Ngược lại, nếu condition3 đúng thì
# Thực hiện các câu lệnh 3
else: # Ngươc lại
# Thực hiện các câu lệnh 4
a = 5
b = 10
if (a < b):
print(b, 'là số lớn hơn', a)
elif (a>b):
print(b, 'là số nhỏ hơn', a)
else:
print(a, 'và', b, 'là bằng nhau')
Trên 1 dòng
code if condition else code
a = 3
print('A là số dương') if a > 0 else print('A là số âm') # A là số dương
Điều kiện lồng nhau
Các điều kiện có thể được lồng vào nhau
if condition:
code
if condition:
code
a = 0
if a > 0:
if a % 2 == 0:
print('A là một số nguyên dương và chẵn')
else:
print('A là một số dương')
elif a == 0:
print('A là số 0') # A là số 0
else:
print('A là một số âm')
Chúng ta có thể tránh viết nhiều câu lệnh điều kiện lồng nhau bằng cách sử dụng toán tử logic and
.
If và Toán tử logic
if condition and condition:
code
a = 0
if a > 0 and a % 2 == 0:
print('A là một số nguyên dương và chẵn')
elif a > 0 and a % 2 != 0:
print('A là một số nguyên dương')
elif a == 0:
print('A là bằng 0') # A là bằng 0
else:
print('A là một số âm')
If và toán tử Or
if condition or condition:
code
user = 'Chanh'
access_level = 3
if user == 'admin' or access_level >= 4:
print('Chấp thuận quyền truy cập!')
else:
print('Quyền truy cập bị từ chối!') # Quyền truy cập bị từ chối!
Bài tập
- Nhập thông tin của người dùng để kiểm tra số tuổi
input(“Nhập tuổi của bạn: ”)
. Nếu từ 18 tuổi trở lên, hãy xuất ra thông báo: Bạn đủ tuổi để lái xe. Nếu dưới 18 tuổi hãy thông báo còn bao nhiêu năm nữa mới đủ tuổi lái xe.
Nhập tuổi của bạn: 30
Bạn đã đủ lớn để học lái xe.
Nhập tuổi của bạn: 15
Bạn cần thêm 3 năm để học lái xe.
- So sánh các giá trị của biến my_age và your_age bằng cách sử dụng if…else. Ai lớn tuổi hơn (tôi hoặc bạn)? Sử dụng câu lệnh
input(“Nhập tuổi của bạn: ”)
để nhận thông tin từ bàn phím. Bạn có thể sử dụng điều kiện lồng nhau để so sánh xem ai lớn tuổi hơn hoặc nhỏ hơn hoặc bằng nhau - Nhập hai số từ bàn phím. Nếu a lớn hơn b thì a lớn hơn b, nếu a nhỏ hơn b thì a nhỏ hơn b, còn lại a bằng b.
- Viết chương trình nhập vào số điểm của một học sinh và xếp loại học sinh đó.
- Kiểm tra mùa trong năm xem tháng mấy là Thu, Đông, Xuân hay Hè. Nếu thông tin người dùng nhập là: Tháng 9, 10 hoặc 11 thì mùa là Thu; Tháng 12, tháng 01 hoặc 02 thì mùa Đông; Tháng 3, tháng 4 hoặc tháng 5 thì mùa Xuân; Tháng 6, tháng 7 hoặc tháng 8 thì mùa Hạ.
- Cho một list như sau:
fruits = ['banana', 'orange', 'mango', 'lemon']
Nếu trái cây không tồn tại trong list, hãy thêm trái cây vào list và in list đã sửa đổi. Nếu trái cây tồn tại, hãy in ('Trái cây đó đã tồn tại trong danh sách')
- Cho một dictionary như sau và hãy sửa đổi nó
person={
'first_name': 'Chanh',
'last_name': 'Phan Nhat',
'age': 250,
'country': 'VietNam',
'is_marred': True,
'skills': ['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
'address': {
'street': 'TSpace street',
'zipcode': '123456'
}
}
-
Kiểm tra xem trong dict trên có key tên là skills hay không. Nếu có, hãy in skills ở giữa trong list đó.
-
Kiểm tra xem trong dict trên có key tên là skills hay không. Nếu có, hãy kiểm tra xem dict trên có value là 'Python' hay không và in ra kết quả.
-
Nếu skills của một người chỉ có JavaScript và React, hãy in ('Anh ấy là nhà phát triển giao diện người dùng'), nếu kỹ năng của người đó có Node, Python, MongoDB,
print ('He is a backend developer')
, nếu kỹ năng của người đó có React, Node và MongoDB thìprint ('He is a fullstack developer')
, ngược lạiprint ('unknown title')
-
Nếu người đó đã kết hôn và sống ở VietNam, hãy in thông tin: Chanh Phan Nhat lives in VietNam. He is married.