Python: if-else

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Điều kiện if-else dùng trong trường hợp muốn rẽ nhánh chương trình theo điều kiện. Ví dụ, nếu biến nguyên n chia hết cho 2 thì suy ra n là số chẵn, ngược lại n là số lẻ. Có nhiều dạng rẽ nhánh khác nhau, dưới đây ta sẽ tìm hiểu những dạng điều kiện if-else khác nhau để có thể áp dụng vào từng trường hợp cụ thể thực tế.

1. if không có else

Cú pháp:

if điều_kiện:
  khối_lệnh;

Theo cú pháp trên, khối_lệnh chỉ được thực hiện khi điều_kiện là đúng, còn không thì bỏ qua khối_lệnh.

điều_kiện ở đây có thể là một điều kiện đơn hoặc cũng có thể bao gồm nhiều điều kiện sử dụng các phép toán logic. Ví dụ:

n=5
if n%2 != 0: #điều kiện này đúng,
  print(n,"là số lẻ") #nên khối lệnh sẽ được thực hiện.

2. if - else thông thường

Cú pháp:

if điều_kiện:
  khối_lệnh1
else:
  khối_lệnh2

Theo cú pháp trên, nếu điều_kiện là đúng thì thực hiện khối_lệnh1, không đúng thì thực hiện khối_lệnh2. Ví dụ:

int m=6
if m%2 != 0: #điu kin này sai,
  print(m,"là s l") #nên khi lnh này không được thc hin.
else:
  print(m,"là s chn") #vy thì khi lnh này sđược thc hin.

Ví dụ dưới đây sẽ áp dụng if-else để xác định một số N bất kỳ nào đó có phải là số nguyên hay không. Số nguyên là số có phần thập phân bằng 0 hoặc phần nguyên của số đó bằng chính nó, ví dụ như 5.0 được coi là số nguyên vì phần thập phân bằng 0 hay phần nguyên của nó (là 5) bằng chính nó (5.0).

N = float(input("Mi nhp 1 s bt k: "))
if N%1 == 0: #nếu N chia hết cho 1 (phn dư ca N cho 1 bng 0)
  print(N,"là s nguyên") #thì N là snguyên
else:
  print(N,"không phi là s nguyên")

3. Nhiều if-else

Loại điều kiện này được sử dụng trong trường hợp có nhiều điều kiện rẽ nhánh và thường có dạng như sau:

if điều_kiện_1:
  khối_lệnh_1;
elif điều_kiện_2:
  khối_lệnh_2;
...
elif điều_kiện_n:
  khối_lệnh_n;
else:
  khối_lệnh;

Theo cú pháp này, nếu điều_kiện_i nào đúng thì khối_lệnh_i của if tương ứng sẽ được thực hiện, tất cả các khối lệnh khác sẽ bị bỏ qua.

Trong trường hợp tất cả các điều kiện đều sai thì khối_lệnh của else nằm cuối cùng sẽ được thực hiện. Ví dụ sau sẽ xác định loại học lực dựa trên biến diemTrungBinh:

diemTrungBinh=float(input("Mi bn nhp đim trung bình: "))
if diemTrungBinh >= 9:
  print("Xut sc")
elif diemTrungBinh >= 8:
  print("Gii")
elif diemTrungBinh >= 6.5:
  print("Khá")
elif diemTrungBinh >= 5:
  print("Trung bình")
else: #nếu tt ccác điu kin trên đu sai
  print("Hc lc yếu") #thì khi lnh này sđược thc hin

4. if lồng

if lồng có nghĩa là if nằm trong if, hay trong if này lại có if khác. Dưới đây là một dạng if lồng:

if điều_kiện:
  if điều_kiện_1:
    khối_lệnh_1
  if điều_kiện_2:
    khối_lệnh_2
  else:
    khối_lệnh_3
else:
  khối_lệnh

Theo dạng trên thì trong if ngoài có 2 if. Vấn đề có thể nảy sinh là phải nhận diện rõ else nào đi với if nào để thiết lập đúng cho các điều kiện rẽ nhánh.

Bạn cần nhớ quy tắc sau:

"else sẽ đi với if gần nó nhất nhưng phải nằm trong cùng một khối lệnh".

Theo dạng trên thì cặp else và if có màu xanh (green) sẽ đi với nhau, cặp else và if màu đỏ (red) sẽ đi với nhau.

Ví dụ, sử dụng ngôn ngữ lập trình Python để giải phương trình bậc hai: ax2 + bx + c = 0. Để giải được phương trình bậc hai thì ta cần phải có ba dữ liệu là ba hệ số a, b và c. Sau đây là đoạn mã thực hiện chương trình:

# Bài toán gii phương trình bc hai: ax2 + bx + c = 0

#import hàm sqrt() đtính căn bc 2
from math import sqrt

#trước tiên yêu cu người dùng nhp vào các hsa
a=float(input("Nhp h s a: "))
b=float(input("Nhp h s b: ")) #hsb
c=float(input("Nhp h s c: ")) #và hsc
if a == 0: #nếu a bng 0 thì
  if b == 0: #nếu b bng 0 thì
    if c == 0: #nếu c bng 0 thì
      #in ra phương trình vô snghim
      print("Phương trình vô s nghim!")
    else:
      #nếu không thì in ra phương trình vô nghim
      print("Phương trình vô nghim!")
  else: #trường hp b khác 0
    #thì phương trình có nghim -c/b
    print("Phương trình có mt nghim, x =", -c / b)
else: #trường hp a khác 0 thì
  delta = b * b - 4 * a * c #trước tiên tính bit thc delta
  if delta < 0: #nếu delta âm
    print("Phương trình vô nghim!") #thì phương trình vô nghim
  elif delta == 0: #nếu không thì nếu delta bng 0
    #thì phương trình có nghim kép bng -b/(2*a)
    print("Phương trình có nghim kép, x1 = x2 =", -b / (2 * a))
  else: #trường hp còn li (tc là delta dương)
    #thì khng đnh phương trình có hai nghim phân bit
    print("Phương trình có hai nghim phân bit:")
    x1 = (-b + sqrt(delta)) / (2 * a) #tính nghim x1
    x2 = (-b - sqrt(delta)) / (2 * a) #tính nghim x2
    print("x1 =", x1) #ri in ra x1
    print("x2 =", x2) #và x2.

Xem thêm

» Tiếp: Vòng lặp for
« Trước: Các loại biến và kiểu dữ liệu
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!