NỘI DUNG
Khái niệm
Cấu trúc điều kiện là một cách để kiểm tra một biểu thức điều kiện nào đó trong chương trình và thực hiện các lệnh khác nhau tùy thuộc vào giá trị của biểu thức đó. Trong lập trình, cấu trúc điều kiện cho phép chương trình lựa chọn các hành động khác nhau để thực hiện dựa trên các điều kiện đưa ra.
Có nhiều cấu trúc điều kiện khác nhau, phổ biến nhất là cấu trúc if
, if-else
, if-elif-else
. Cấu trúc if
chỉ kiểm tra một biểu thức điều kiện và thực hiện một lệnh nếu biểu thức đó là đúng. Cấu trúc if-else
cho phép thực hiện một lệnh nếu biểu thức điều kiện đúng và một lệnh khác nếu biểu thức đó sai. Cấu trúc if-elif-else
cho phép kiểm tra nhiều điều kiện khác nhau và thực hiện các lệnh khác nhau tùy thuộc vào giá trị của các biểu thức điều kiện đó.
Cấu trúc if
Câu lệnh if được sử dụng để kiểm tra một điều kiện và thực hiện một hành động nếu điều kiện đó đúng. Cú pháp của câu lệnh if như sau:
if condition:
# thực hiện hành động nếu condition đúng
Trong đó, condition
là một biểu thức điều kiện, và câu lệnh thực hiện hành động nếu condition đúng
là một khối lệnh, được thực hiện nếu condition
đúng.
Cấu trúc if … else
Câu lệnh if-else được sử dụng để kiểm tra một điều kiện và thực hiện một hành động nếu điều kiện đó đúng và một hành động khác nếu điều kiện đó sai. Cú pháp của câu lệnh if-else như sau:
if condition:
# thực hiện hành động nếu condition đúng
else:
# thực hiện hành động nếu condition sai
Trong đó, condition
là một biểu thức điều kiện, và câu lệnh thực hiện hành động nếu condition đúng
là một khối lệnh, được thực hiện nếu condition
đúng. Câu lệnh thực hiện hành động nếu condition sai
là một khối lệnh khác, được thực hiện nếu condition
sai.
Cấu trúc if-elif:
Câu lệnh if-elif được sử dụng để kiểm tra nhiều điều kiện khác nhau và thực hiện các hành động tương ứng. Cú pháp của câu lệnh if-elif như sau:
if condition1:
# thực hiện hành động nếu condition1 đúng
elif condition2:
# thực hiện hành động nếu condition1 sai và condition2 đúng
Trong đó, condition1
và condition2
là các biểu thức điều kiện khác nhau. Nếu condition1
đúng, câu lệnh thực hiện hành động nếu condition1 đúng
sẽ được thực hiện. Nếu condition1
sai và condition2
đúng, câu lệnh thực hiện hành động nếu condition1 sai và condition2 đúng
sẽ được thực hiện.
Cấu trúc if-elif-else:
Câu lệnh if-elif-else được sử dụng để kiểm tra nhiều điều kiện khác nhau và thực hiện các hành động tương ứng.
Cú pháp của câu lệnh if-elif-else như sau:
if condition1:
# thực hiện hành động nếu condition1 đúng
elif condition2:
# thực hiện hành động nếu condition1 sai và condition2 đúng
else:
# thực hiện hành động nếu cả condition1 và condition2 đều sai
Trong đó, condition1
và condition2
là các biểu thức điều kiện khác nhau. Nếu condition1
đúng, câu lệnh thực hiện hành động nếu condition1 đúng
sẽ được thực hiện. Nếu condition1
sai và condition2
đúng, câu lệnh thực hiện hành động nếu condition1 sai và condition2 đúng
sẽ được thực hiện. Nếu cả condition1
và condition2
đều sai, câu lệnh thực hiện hành động nếu cả condition1 và condition2 đều sai
sẽ được thực hiện.
Các câu lệnh if-else, if-elif và if-elif-else cho phép bạn kiểm tra và xử lý nhiều trường hợp khác nhau trong chương trình của bạn, tùy thuộc vào giá trị của biểu thức điều kiện.
Cấu trúc khác
Trong Python không có cấu trúc switch-case
như một số ngôn ngữ lập trình khác. Thay vào đó, để thực hiện kiểm tra và xử lý các trường hợp khác nhau, Python sử dụng cấu trúc điều kiện if-elif-else.
Tuy nhiên, có thể giả lập cấu trúc switch-case trong Python bằng cách sử dụng từ khóa dict
(từ điển). Ta có thể tạo một từ điển với các khóa là giá trị của biến cần kiểm tra, và các giá trị tương ứng là các hàm hoặc lệnh cần thực hiện cho từng trường hợp. Ví dụ:
def func1():
print("This is case 1")
def func2():
print("This is case 2")
def func3():
print("This is case 3")
# tạo dictionary với các giá trị tương ứng với các hàm cần thực hiện
options = {
1: func1,
2: func2,
3: func3
}
# kiểm tra giá trị của biến x và thực hiện hàm tương ứng
x = 2
options[x]()
Trong ví dụ trên, chúng ta tạo một từ điển options
với các giá trị tương ứng là các hàm func1
, func2
và func3
. Sau đó, ta có thể kiểm tra giá trị của biến x
và thực hiện hàm tương ứng bằng cách gọi options[x]()
. Nếu x
có giá trị là 2
, hàm func2
sẽ được thực hiện.
Ví dụ thực hành
Ví dụ 1. Số chẵn/lẻ
Viết chương trình nhập vào một số nguyên và kiểm tra xem số đó có phải số chẵn hay không.
num = int(input("Nhập một số nguyên: "))
if num % 2 == 0:
print(num, "là số chẵn")
else:
print(num, "không phải là số chẵn")
Ví dụ 2. Số nguyên tố
Viết chương trình nhập vào một số nguyên và kiểm tra xem số đó có phải số nguyên tố hay không
num = int(input("Nhập một số nguyên: "))
if num > 1:
for i in range(2, num):
if num % i == 0:
print(num, "không phải là số nguyên tố")
break
else:
print(num, "là số nguyên tố")
else:
print(num, "không phải là số nguyên tố")
Ví dụ 3. Ký tự số
Viết chương trình nhập vào một chuỗi và kiểm tra xem chuỗi đó có chứa ký tự số hay không.
str = input("Nhập một chuỗi: ")
if any(char.isdigit() for char in str):
print("Chuỗi nhập vào chứa ký tự số")
else:
print("Chuỗi nhập vào không chứa ký tự số")
Ví dụ 4. Chuỗi đối xứng
Viết chương trình nhập vào một chuỗi và kiểm tra xem chuỗi đó có phải chuỗi đối xứng hay không.
str = input("Nhập một chuỗi: ")
if str == str[::-1]:
print("Chuỗi nhập vào là chuỗi đối xứng")
else:
print("Chuỗi nhập vào không phải là chuỗi đối xứng")
Chương trình yêu cầu người dùng nhập vào một chuỗi bằng câu lệnh input
. Chúng ta sử dụng toán tử đảo ngược [::-1]
để đảo ngược chuỗi ban đầu và kiểm tra xem chuỗi đó có giống với chuỗi ban đầu hay không. Nếu hai chuỗi giống nhau thì chuỗi ban đầu là chuỗi đối xứng, nếu không thì chuỗi ban đầu không phải là chuỗi đối xứng.
Ví dụ 5. Tìm số lớn nhất trong ba số
Viết chương trình nhập vào ba số và tìm số lớn nhất trong ba số đó.
a = int(input("Nhập số thứ nhất: "))
b = int(input("Nhập số thứ hai: "))
c = int(input("Nhập số thứ ba: "))
if a > b and a > c:
print("Số lớn nhất là", a)
elif b > a and b > c:
print("Số lớn nhất là", b)
else:
print("Số lớn nhất là", c)
Ví dụ 6. Tính tổng các số chẵn nhỏ hơn hoặc bằng 1 số
Viết chương trình nhập vào một số nguyên dương và tính tổng các số chẵn nhỏ hơn hoặc bằng số đó.
n = int(input("Nhập một số nguyên dương: "))
sum = 0
for i in range(1, n+1):
if i % 2 == 0:
sum += i
print("Tổng các số chẵn nhỏ hơn hoặc bằng", n, "là", sum)
Ví dụ 7. Tổng các số nguyên tố nhỏ hơn hoặc bằng n
Viết chương trình nhập vào một số nguyên dương và tính tổng các số nguyên tố nhỏ hơn hoặc bằng số đó.
n = int(input("Nhập một số nguyên dương: "))
sum = 0
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
for i in range(2, n+1):
if is_prime(i):
sum += i
print("Tổng các số nguyên tố nhỏ hơn hoặc bằng", n, "là", sum)
Ví dụ 8. Tìm số lớn nhất trong danh sách
Viết chương trình nhập vào một danh sách các số và tìm số lớn nhất trong danh sách đó.
lst = input("Nhập danh sách các số, cách nhau bằng dấu cách: ").split()
lst = [int(x) for x in lst]
max_num = lst[0]
for num in lst:
if num > max_num:
max_num = num
print("Số lớn nhất trong danh sách là:", max_num)
Ví dụ 9. Đếm số lượng từ trong chuỗi
Viết chương trình nhập vào một chuỗi và đếm số lượng từ trong chuỗi đó
s = input("Nhập chuỗi cần đếm từ: ")
word_count = len(s.split())
print("Số lượng từ trong chuỗi là:", word_count)
Ví dụ 10. Đếm ký tự chữ hoa, chữ thường và chữ số
Viết chương trình nhập vào một chuỗi và đếm số lượng ký tự chữ hoa, chữ thường và chữ số trong chuỗi đó.
s = input("Nhập chuỗi cần đếm: ")
upper_count = 0
lower_count = 0
digit_count = 0
for c in s:
if c.isupper():
upper_count += 1
elif c.islower():
lower_count += 1
elif c.isdigit():
digit_count += 1
print("Số lượng chữ hoa trong chuỗi là:", upper_count)
print("Số lượng chữ thường trong chuỗi là:", lower_count)
print("Số lượng chữ số trong chuỗi là:", digit_count)
Ví dụ 11. In chuỗi theo thứ tự ngược lại
Viết chương trình nhập vào một chuỗi và in ra chuỗi đó theo thứ tự ngược lại.
s = input("Nhập chuỗi cần đảo ngược: ")
reverse_s = s[::-1]
print("Chuỗi đảo ngược là:", reverse_s)
Ví dụ 12. Số Fibonacci
Viết chương trình nhập vào một số nguyên và in ra các số Fibonacci nhỏ hơn hoặc bằng số đó.
n = int(input("Nhập số nguyên dương n: "))
fibonacci_series = [0, 1]
while fibonacci_series[-1] <= n:
next_number = fibonacci_series[-1] + fibonacci_series[-2]
if next_number > n:
break
fibonacci_series.append(next_number)
print("Các số Fibonacci nhỏ hơn hoặc bằng", n, "là:")
for number in fibonacci_series:
print(number, end=" ")
Giải thích: Chương trình yêu cầu người dùng nhập vào một số nguyên dương n. Ta khởi tạo một list fibonacci_series
chứa hai phần tử đầu tiên của dãy Fibonacci là 0 và 1. Sau đó, vòng lặp while được sử dụng để thêm các số Fibonacci tiếp theo vào list cho đến khi số Fibonacci vượt quá số n đã nhập vào. Sau khi list fibonacci_series
được xây dựng xong, chúng ta in ra các số Fibonacci nhỏ hơn hoặc bằng số n đã nhập vào.
Một số điểm cần lưu ý khi sử dụng câu lệnh điều kiện
Khi sử dụng câu lệnh điều kiện trong Python, có một số điểm cần lưu ý như sau:
-
Câu lệnh điều kiện cần được bao quanh bởi cặp dấu ngoặc đơn
()
. -
Dấu hai chấm
:
phải được đặt sau mỗi câu lệnh điều kiện. -
Nội dung của câu lệnh điều kiện phải được thụt đầu dòng để xác định phạm vi của câu lệnh.
-
Các toán tử so sánh như
==
,!=
,<
,>
,<=
,>=
được sử dụng để so sánh giá trị. -
Khi sử dụng câu lệnh điều kiện với nhiều điều kiện cùng lúc, các toán tử logic như
and
,or
,not
được sử dụng để kết hợp các điều kiện. -
Khi sử dụng câu lệnh điều kiện, cần lưu ý đến thứ tự ưu tiên của các toán tử so sánh và logic.
-
Trong Python, không có cấu trúc
switch...case
, thay vào đó ta có thể sử dụng cấu trúcif...elif...else
để thực hiện các điều kiện khác nhau. -
Câu lệnh
if
có thể được sử dụng để kiểm tra các giá trị đúng hoặc sai, không nhất thiết phải là kiểu dữ liệu số.
Kết Luận
Câu lệnh điều kiện là một trong những công cụ quan trọng trong lập trình, cho phép kiểm tra một điều kiện nhất định và thực hiện một hành động tương ứng nếu điều kiện đó đúng hoặc sai. Sử dụng câu lệnh điều kiện cho phép lập trình viên thực hiện các tác vụ khác nhau tùy thuộc vào điều kiện đầu vào, từ đó giúp tăng tính linh hoạt và hiệu quả của chương trình.
Trong một số trường hợp, câu lệnh điều kiện được sử dụng để xử lý các điều kiện đơn giản, như kiểm tra một giá trị có bằng 0 hay không. Tuy nhiên, trong nhiều trường hợp, các câu lệnh điều kiện phức tạp hơn được sử dụng để giải quyết các vấn đề phức tạp, như kiểm tra một tập hợp các điều kiện hoặc thực hiện các hành động khác nhau dựa trên các trường hợp khác nhau của điều kiện đầu vào.
Với việc sử dụng câu lệnh điều kiện, lập trình viên có thể kiểm soát chương trình của mình một cách chính xác hơn, đảm bảo rằng các hành động được thực hiện đúng cách và đáp ứng được các yêu cầu của người dùng hoặc ứng dụng./.