Hướng dẫn dùng if elif python

Trong một chương trình, bình thường các lệnh sẽ lần lượt được thực hiện theo thứ tự xuất hiện của nó trong file code. Nếu chỉ thực thi lệnh như vậy các chương trình sẽ rất hạn chế. Vì vậy người ta đưa vào các cấu trúc điều khiển có tác dụng làm tham đổi trật tự thực thi lệnh trong chương trình.

Ví dụ, bạn chỉ thực thi lệnh khi đáp ứng một điều kiện nào đó. Bạn cũng có thể muốn lặp đi lặp lại việc thực hiện một nhóm lệnh. Trường hợp thứ nhất người ta gọi là rẽ nhánh, trường hợp thứ hai gọi là vòng lặp.

Python có các cấu trúc điều khiển rẽ nhánh và các cấu trúc lặptương tự như các ngôn ngữ khác. Trong bài học này chúng ta sẽ xem xét cách sử dụng cấu trúc lặp if-elif-else.

NỘI DUNG CỦA BÀI Ẩn

1. Chương trình minh họa

2. Cấu trúc rẽ nhánh if

3. Mệnh đề elif và else

4. Các cấu trúc if-elif-else lồng nhau

5. Từ khóa pass

6. Kết luận

Chương trình minh họa

Tạo file equation.py và viết code như sau:

from math import sqrt # sử dụng hàm tính căn sqrt trong module math
print['--- EQUATION SOLVER ---']
a = float[input['a = ']]
b = float[input['b = ']]
c = float[input['c = ']]
d = b*b - 4*a*c
if d >= 0:
	print['THERE ARE REAL SOLUTIONS:']
	x1 = [-b + sqrt[d]]/[2*a]
	x2 = [-b - sqrt[d]]/[2*a]
	print[f'x1 = {x1}']
	print[f'x2 = {x2}']
else:
	print['THERE ARE COMPLEX SOLUTIONS BUT I CANNOT SHOW YOU.']
input['\nThank you! Press enter to quit ...']

Chạy script trên ở dạng chương trình console [click đúp vào file equation.py hoặc click phải -> Open with -> Python] bạn thu được kết quả như sau:

Đây là một ví dụ đơn giản minh họa cách sử dụng cấu trúc rẽ nhánh if-else trong Python:

if d >= 0:
	print['THERE ARE REAL SOLUTIONS:']
	# code khác 
else:
	print['THERE ARE COMPLEX SOLUTIONS BUT I CANNOT SHOW YOU.']

Cấu trúc rẽ nhánh if

Cấu trúc rẽ nhánh quyết định xem những lệnh nào sẽ được thực hiện căn cứ vào giá trị [kiểu bool] của một biểu thức điều kiện.

Như trong ví dụ trên, nếu d >= 0 [biểu thức logic điều kiện] thì chúng ta tính nghiệm thực của phương trình và in ra kết quả. Nếu d < 0 thì chỉ thông báo là có nghiệm phức nhưng không tính toán được [vì hàm sqrt của Python không chấp nhận đối số âm].

Cấu trúc này làm thay đổi luồng thực thi [trật tự thực hiện lệnh] của chương trình. Trật tự thực hiện lệnh phụ thuộc vào giá trị của biểu thức điều kiện. Có những lệnh sẽ không được thực hiện.

Cú pháp cơ bản của cấu trúc này như sau:

if  :
    ...
    # khối code
    ...

một số ví dụ:

age = int[input['Your age: ']]
if[age >= 18]:
	print['Welcome!']
	print[f'Your birth year is {2020-age}']
name = input['Your name: ']
if[name.lower[] == 'donald']:
	print['Mr. President!']
	print['Welcome to heaven!']

Biểu thức điều kiện là một biểu thức có kiểu kết quả là bool. Phần if : được gọi là header [tiêu đề], phần khối code được gọi là suite [thân]. Tổ hợp header và suite được gọi là một clause [mệnh đề].

Phần suite là bắt buộc. Tất cả lệnh trong suite phải viết với cùng số thụt đầu dòng. Số lượng thụt đầu dòng không bắt buộc nhưng thường quy ước là 1 thụt đầu dòng = 4 space. Các IDE đều hỗ trợ viết thụt đầu dòng tự động. Bạn cũng có thể tự thụt đầu dòng bằng phím tab hoặc space.

Nếu vô tình làm thay đối thụt đầu dòng bạn sẽ gặp lỗi cú pháp:

Mệnh đề elif và else

Trong cấu trúc rẽ nhánh đơn giản nhất bạn chỉ cần một mệnh đề if là đủ.

Hãy giả sử bạn viết script kiểm tra tuổi đi học theo các nấc sau: [1] dưới 6 tuổi -> trẻ mầm non, [2] từ 6 đến 12 -> học sinh tiểu học, [3] từ 12 đến 15 -> học sinh trung học cơ sở, [4] từ 16 đến 18 -> học sinh trung học, [5] trên 18 tuổi -> đại học / đi làm.

Dĩ nhiên bạn có thể viết 5 lệnh if:

age = int[input['Your age: ']]
if[0 < age < 6]:
	print['Mầm non']
if[6 

Chủ Đề