--------------- <> -----------------
--- KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
--- Học để đi cùng bà con trên thế giới ---

Tìm kiếm trong Blog

Python (14) - Lệnh điều kiện

Bài trước: Python (13) - Kiểu dữ liệu Boolean
-----

14. Lệnh điều kiện

Ở bài trước, bạn đã biết cách so sánh để trả về kết quả True hoặc False. Nhưng để chương trình thực sự "thông minh", nó cần biết dựa vào kết quả đó để quyết định sẽ làm gì tiếp theo. Đó chính là lúc chúng ta dùng lệnh điều kiện if.

14.1 Lệnh if là gì?

Trong cuộc sống, chúng ta luôn đưa ra quyết định dựa trên điều kiện:

- Nếu trời mưa, thì mang dù

- Nếu đủ 18 tuổi, thì được lái xe trên 50cc

Trong Python, lệnh if dùng để kiểm tra một điều kiện. Nếu điều kiện đó Đúng (True), chương trình sẽ thực hiện các câu lệnh bên trong nó. Xem sơ đồ minh họa.


Cú pháp trong Python:

if điều_kiện:

    # Các câu lệnh sẽ chạy nếu điều kiện Đúng

Lưu ý: Sau lệnh if phải có dấu hai chấm (:) và các câu lệnh bên dưới phải được thụt lề vào trong (thường là 1 phím Tab hoặc 4 dấu cách).

Ví dụ: Viết chương trình kiểm tra xem một số bạn nhập vào có phải là số dương không?

so = int(input("Nhập một số: "))


if so > 0:

    print("Đây là số dương!")

    print("Cám ơn bạn đã nhập số.")

Giải thích: Nếu bạn nhập 5, điều kiện 5 > 0True, máy sẽ in ra cả 2 dòng thông báo. Nếu bạn nhập -3, máy sẽ không hiện gì cả vì điều kiện là False.

14.2 Mở rộng với else (ngược lại)

Đôi khi bạn muốn máy tính làm việc này nếu Đúng, nhưng làm việc khác nếu Sai. Khi đó ta dùng thêm else. Xem hình minh họa.


Ví dụ:

diem = float(input("Nhập điểm của bạn: "))


if diem >= 5:

    print("Chúc mừng, bạn đã đạt!")

else:

    print("Rất tiếc, bạn cần cố gắng hơn.")


14.3 Bài tập và câu hỏi

Bài tập 14a. Kiểm tra phép chia cho 0. Trong toán học, không thể chia một số cho 0. Hãy viết chương trình yêu cầu nhập số chia. Nếu số chia bằng 0, hãy in ra cảnh báo "Lỗi: Không thể chia cho số 0!".

Đầu vào:

Nhap so chia: 0

Kết quả mong đợi:

Loi: Khong the chia cho so 0!

Bài tập 14b. Viết chương trình yêu cầu người dùng nhập một ký tự phép tính. Nếu người dùng nhập dấu cộng +, hãy yêu cầu nhập tiếp 2 số và in ra tổng của chúng.

Đầu vào:

Phep tinh: +

So thu nhat: 5

So thu 2: 7

Kết quả mong đợi:

Ket qua: 12

Bài tập 14c. Máy tính cầm tay xác nhận xóa lịch sử tính toán. Trong máy tính cầm tay (calculator) thường có nút "C" để xóa lịch sử tính toán. Viết chương trình hỏi người dùng "Bạn có muốn xóa kết quả không? (Y/N)". Nếu người dùng nhập Y hoặc y, hãy in ra "Đang xóa dữ liệu...".

Đầu vào:

Ban co muon xoa ket qua khong? (Y/N): y

Kết quả mong đợi:

Dang xoa du lieu…

Câu hỏi 14.1: Ký tự nào bắt buộc phải có ở cuối dòng lệnh if

A. Dấu chấm phẩy (;) 

B. Dấu hai chấm (:) 

C. Dấu ngoặc đơn () 

D. Không cần dấu gì

Câu hỏi 14.2: Điều gì xảy ra nếu bạn quên "thụt lề" các câu lệnh bên dưới if

A. Chương trình vẫn chạy bình thường 

B. Chương trình tự động sửa lỗi cho bạn 

C. Python sẽ báo lỗi "IndentationError" và không chạy 

D. Câu lệnh đó sẽ luôn luôn được thực hiện

Câu hỏi 14.3: Đoạn mã sau sẽ in ra gì nếu n = 10?

n = 10

if n % 2 == 0:

    print("Số chẵn")

else:

    print("Số lẻ")

A. Số lẻ 

B. 10

C. Số chẵn

D. Không in gì

14. Conditional Statements

In the previous lesson, you learned how to use comparisons to return a True or False result. However, for a program to be truly "intelligent," it needs to make decisions based on those results. This is where we use the if statement.

14.1 What is an "if" statement?

In real life, we constantly make decisions based on conditions:

- If it rains, then take an umbrella

- If you are 18 or older, then you can drive a vehicle over 50cc.

In Python, the if statement evaluates a condition. If the condition is True, the program executes the block of code inside it.

Python Syntax:

if condition:

    # Code to execute if the condition is True

Note: The if statement must end with a colon (:), and the subsequent lines of code must be indented (usually 1 Tab or 4 spaces).

Example: Write a program to check if a number entered by the user is positive.

number = int(input("Enter a number: "))


if number > 0:

    print("This is a positive number!")

    print("Thank you for entering a number.")

Explanation: If you enter 5, the condition 5 > 0 is True, so the machine prints both lines. If you enter -3, nothing happens because the condition is False.

14.2 Expanding with "else"

Sometimes you want the computer to do one thing if a condition is True, but something else if it is False. For this, we use the else statement.

Example:

score = float(input("Enter your score: "))


if score >= 5:

    print("Congratulations, you passed!")

else:

    print("Sorry, you need to try harder.")

14.3 Exercises and Quiz

Exercise 14a: Division by Zero Check

In mathematics, you cannot divide a number by zero. Write a program that asks for a divisor. If the divisor is 0, print the warning: "Error: Cannot divide by zero!".

Input: 

Enter divisor: 0

Expected Output: 

Error: Cannot divide by zero!

Exercise 14b: Simple Addition 

Write a program that asks the user for an operator. If the user enters the plus sign +, ask for two numbers and print their sum.

Input: 

Operator: +

    First number: 5

    Second number: 7

Expected Output

Result: 12

Exercise 14c: Calculator Clear History

Calculators often have a "C" button to clear history. Write a program that asks: "Do you want to clear the results? (Y/N)". If the user enters Y or y, print "Clearing data...".

Input: 

Do you want to clear the results? (Y/N): y

Expected Output

Clearing data...

Question 14.1: Which character is mandatory at the end of an if statement line? 

A. Semicolon (;) 

B. Colon (:) 

C. Parentheses () 

D. No character needed

Question 14.2: What happens if you forget to "indent" the statements below an if

A. The program runs normally 

B. The program automatically fixes the error for you 

C. Python will report an "IndentationError" and fail to run 

D. The statement will always be executed

Question 14.3: What will the following code print if n = 10?

n = 10

if n % 2 == 0:

    print("Even number")

else:

    print("Odd number")

A. Odd number 

B. 10 

C. Even number 

D. Nothing is printed

-----
Bài sau:

Python (13) - Kiểu dữ liệu Boolean

Bài trước: Python (12) - Xử lý trên chuỗi (tiếp)
-----

13: Kiểu dữ liệu Boolean

Ở bài học trước, bạn đã được làm quen với kiểu dữ liệu chuỗi. Bài học này, chúng ta tiếp tục tìm hiểu thêm một kiểu dữ liệu nữa trong Python. 

Kiểu dữ liệu boolean, hiểu đơn giản là kiểu dữ liệu “đúng hay sai”.

13.1 Boolean là gì?

Trong cuộc sống, bạn sẽ gặp những câu hỏi chỉ có hai cách trả lời duy nhất là: đúng hoặc sai.

Ví dụ: 

- Bạn là học sinh cấp 2, đúng không?

- Đúng

Hoặc,

- 2 lớn hơn 10, đúng không?

- Sai

Trong lập trình Python, để biểu diễn cho hai trạng thái này, chúng ta dùng kiểu dữ liệu Boolean (viết tắt là bool). Nó chỉ có hai giá trị:

- True (đúng)

- False (sai)

Lưu ý: Bạn phải viết hoa chữ cái đầu (True, False), nếu viết thường (true, false) chương trình sẽ báo lỗi.

13.2 Biểu thức so sánh

Thông thường, chúng ta không tự nhiên gán giá trị True hay False cho một biến, mà kết quả này sinh ra từ các phép so sánh.

Bảng sau liệt kê một số phép so sánh:

Phép toán

Ý nghĩa

Ví dụ

Kết quả

==

Bằng nhau

5 == 5

True

!=

Khác nhau

5 != 3

True

>

Lớn hơn

5 > 10

False

<

Nhỏ hơn

3 < 7

True

>=

Lớn hơn hoặc bằng

5 >= 5

True

<=

Nhỏ hơn hoặc bằng

4 <= 2

False

Ví dụ

Giả định, khi bạn đang lập trình cho hệ thống đăng nhập của trường học:


ten_dang_nhap = "nguyenvanteo"

mat_khau_dung = "123456"


# Người dùng nhập vào

user_input = "123456"


# Kiểm tra mật khẩu

ket_qua = (user_input == mat_khau_dung)


print("Mật khẩu chính xác?")

print(ket_qua) 

# Kết quả sẽ hiện ra True

13.3 Hàm bool() và các giá trị "rỗng"

Python có một quy tắc thú vị: Hầu như mọi giá trị đều có thể chuyển đổi sang giá trị True nếu nó có nội dung.

Ví dụ:

- bool("Hello") > True

- bool(100) > True

Bạn có thể lập trình, xuất ra giá trị để quan sát:

print(bool("Hello"))

# True

print(bool(100))

# True

Tuy nhiên, các giá trị sau đây sẽ được coi là False:

- Số 0

- Chuỗi rỗng ""

- Các danh sách rỗng [], (), {}

- Giá trị đặc biệt None

Ví dụ:

print(bool(None))

# False

print(bool(""))

#False

13.4 Bài tập và câu hỏi

Bài tập 13a. Kiểm tra độ tuổi đi xe máy

Viết chương trình yêu cầu nhập tuổi của bạn. In ra True nếu bạn đủ 18 tuổi trở lên để lái xe máy trên 50cc, ngược lại in ra False.

Đầu vào:

Ban co duoc lai xe tren 50cc khong?

Tuoi cua ban: 19

Kết quả mong đợi:

Ket qua: True

Bài tập 13b. Hệ thống đánh giá môn học

Yêu cầu người dùng nhập điểm môn Tin học. In ra kết quả kiểm tra xem điểm đó có lớn hơn hoặc bằng 5.0 hay không (để biết có đạt môn không).

Đầu vào:

Diem Tin-hoc cua ban: 6

Kết quả mong đợi:

Ket qua: Dat

Bài tập 13c. Kiểm tra tên đăng nhập

Viết chương trình yêu cầu nhập tên đăng nhập. Nếu người dùng để trống (không nhập gì cả), hãy dùng hàm bool() để in ra False. Nếu có nhập tên, in ra True.

Đầu vào:

Ten: teo

Kết quả mong đợi:

Ket qua: True

Bài tập 13d. So sánh chiều cao

Nhập vào chiều cao của hai bạn An và Bình. Hãy in ra kết quả so sánh xem An có cao hơn Bình hay không.

Đầu vào:

Chieu cao cua An: 1.50

Chieu cao cua Binh: 1.55

Kết quả mong đợi:

An cao hon Binh: False

Câu hỏi 13.1 Giá trị nào sau đây là kiểu Boolean hợp lệ trong Python?

A. true

B. "True"

C. True

D. TRUE

Câu hỏi 13.2 Kết quả của biểu thức print(10 > 9) là gì?

A. 10 > 9

B. True

C. False

D. Lỗi chương trình

Câu hỏi 13.3 Kết quả của bool("") (chuỗi rỗng) là gì?

A. True

B. False

C. None

D. Lỗi

Câu hỏi 13.4 Phép toán nào dùng để kiểm tra xem hai giá trị có “khác” nhau hay không?

A. =

B. ==

C. !=

D. <>

Câu hỏi 13.5 Đoạn mã sau in ra nội dung gì?

x = 5

y = "5"

print(x == y)

A. True

B. False

C. 5 == 5

D. Lỗi

13. The Boolean Data Type

In the previous lesson, you were introduced to the String data type. In this lesson, we will explore another fundamental data type in Python.

The Boolean data type, simply put, represents a value that is either "True" or "False."

13.1 What is a Boolean?

In real life, you often encounter questions that have only two possible answers: Yes or No (True or False).

Examples:

- Are you a middle school student? > True

- Is 2 greater than 10? > False

In Python programming, we use the Boolean data type (abbreviated as bool) to represent these two states. It has only two values:

- True

- False

Note: Python is case-sensitive. You must capitalize the first letter (True, False). Using lowercase (true, false) will result in a NameError.

13.2 Comparison Operators

Usually, we don't manually assign True or False to a variable. Instead, these values are generated as the result of comparison expressions.

The following table lists the common comparison operators:

Operator

Meaning

Example

Result

==

Equal to

5 == 5

True

!=

Not equal to

5 != 3

True

>

Greater than

5 > 10

False

<

Less than

3 < 7

True

>=

Greater than or equal to

5 >= 5

True

<=

Less than or equal to

4 <= 2

False

Example

Imagine you are coding a login system for a school:

username = "nguyenvanteo"

correct_password = "123456"

# User input

user_input = "123456"

# Check if the password is correct

is_correct = (user_input == correct_password)

print("Is the password correct?")

print(is_correct) 

# Output: True

13.3 The bool() Function and "Truthy/Falsy" Values

Python has an interesting rule: almost any value can be evaluated as True if it has some content.

Examples:

- bool("Hello") → True

- bool(100) → True

However, the following values are always evaluated as False:

- The number 0

- An empty string ""

- Empty collections: [], (), {}

- The special value None

print(bool(None)) 

# False

print(bool(""))   

# False

13.4 Exercises and Quiz

Exercise 13a: Motorcycle Age Check

Write a program that asks for your age. Print True if you are 18 or older (eligible to ride a motorcycle over 50cc), otherwise print False.

Input:

Your age: 19

Expected Result: 

Result: True

Exercise 13b: Grading System

Ask the user to input their Computer Science score. Print the result of checking if the score is greater than or equal to 5.0.

Input: 

Your score: 6

Expected Result: 

Result: True

Exercise 13c: Username Check

Write a program that asks for a username. If the user leaves it blank, use the bool() function to print False. If they enter a name, print True.

Input: 

Your name: teo

Expected Result: 

Result: True

Exercise 13d: Height Comparison

Input the heights of two students, An and Binh. Print the result of whether An is taller than Binh.

Input: 

An: 1.50, Binh: 1.55

Expected Result: 

An is taller than Binh: False

Quiz

13.1 Which of the following is a valid Boolean literal in Python?

A. true

B. "True"

C. True

D. TRUE

13.2 What is the output of print(10 > 9)?

A. 10 > 9

B. True

C. False

D. Error

13.3 What is the result of bool("") (empty string)?

A. True

B. False

C. None

D. Error

13.4 Which operator is used to check if two values are "not equal"?

A. =

B. ==

C. !=

D. <>

13.5 What does the following code print?

x = 5

y = "5"

print(x == y)


A. True

B. False

C. 5 == 5

D. Error

-----
Bài sau: Python (14) - Lệnh điều kiện