Trang

Friday, May 29, 2015

Bài 3: Cấu trúc rẽ nhánh trong Python

Hôm nay chúng ta sẽ cùng nhau đi học về cấu trúc rẽ nhánh. Có lẽ cấu trúc rẽ nhánh là cấu trúc được sử dụng nhiều nhất khi chúng ta lập trình. Ở Python, lệnh được biết đến nhiều nhất là câu lệnh if . Trước khi đi vào với if, chúng ta sẽ học trước về khối lệnh trong Python.
1, Khối lệnh
Ở các ngôn ngữ lập trình khác, các bạn có lẽ sử dụng đến rất nhiều khối lệnh. Khối lệnh là một tập hợp các câu lệnh, một nhóm các lệnh mà vị thế của nó trong chương trình tương đương với một lệnh khác không nằm trong khối lệnh đó. Ở pascal, nó là begin...end; Ở C nó là {....} v.v.. Nhưng điều đặc biệt là ở Python không có kí hiệu bắt đầu và kết thúc khối lệnh như ở các ngôn ngữ khác. Vậy Python sử dụng gì để xác định khối lệnh? Các bạn chú ý là ở Python thì khối lệnh được xác định bằng độ thụt vào của các lệnh tính từ đầu dòng. Các lệnh liên tiếp có độ thụt vào bằng nhau sẽ được coi như 1 khối lệnh. Khi thụt vào chúng ta có thể dùng khoảng trắng (space) hoặc tab. Một tab được tính bằng 4 dấu cách nhé.
Để hiểu rõ hơn, chúng ta đi vào ví dụ minh họa nhé:
Code:
#coding: utf-8
print "Đây là khối lệnh thứ nhất"
print "Nó nằm trực tiếp từ đầu dòng"
    print "Đây là khối lệnh thứ hai"
    print "Nó được lùi vào 1 tab so với khối lệnh thứ nhất"
    print "Nó có thể coi là khối lệnh con của khối lệnh thứ nhất"  
     print "Đây là khối lệnh thứ ba",
     print "Nó được lùi vào 1 khoảng trắng so với khối lệnh thứ hai"
     print "Nó có thể coi là khối lệnh con của khối lệnh thứ hai"
2, Cấu trúc rẽ nhánh if .... else và if ..... elif
Cú pháp của câu lệnh if .... else:
Code:
if <điều kiện>:
    <khối lệnh được thụt vào so với if>
hoặc
if <điều kiện>:
    <khối lệnh 1 được thụt vào so với if>
else:
    <khối lệnh 2 được thụt vào so với else>
Điều kiện sẽ xác định xem có thực hiện khối lệnh con của if hay không. Điều kiện sẽ được trả về giá trị logic True hoặc False. Cách thức thực hiện của IDE sẽ là:
  • Kiểm tra điều kiện, nếu điều kiện trả về giá trị đúng thì thực hiện khối lệnh con ngay sau if, nếu điều kiện sai kiểm tra tiếp có else hay không, nếu có else sẽ thực hiện tiếp khối lệnh con sau else, còn không có else sẽ chuyển tiếp sang lệnh tiếp theo.
Cú pháp của câu lệnh if ..... elif:
Code:
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 mặc định>
Cách thức hoạt động của khối if...elif tương tự if...else. Phần else là không bắt buộc. Từ khóa `elif' là viết tắt của `else if', và dùng để tránh thụt vào quá nhiều. Dãy if ... elif ... elif ... dùng thay cho câu lệnh switch hay case tìm thấy trong các ngôn ngữ khác.
Các bạn hãy xem ví dụ dưới để hiểu rõ hơn về cấu trúc rẽ nhánh nhé:
Code:
thang = int(raw_input('Nhap vao thang nay (0 < thang < 13): '))
nam = int(raw_input('Nhap vao nam nay (0 < nam): '))
if thang in [1,3,5,7,8,10,12]:
    print "Thang %s nam %s co 31 ngay." % (thang,nam)
elif thang in [4,6,9,11]:
    print "Thang %s nam %s co 30 ngay." % (thang,nam)
else:
    if (nam%4 == 0 and nam%100 <> 0) or (nam%400 == 0):
        print "Thang hai nam %s co 29 ngay." % nam
    else:
        print "Thang hai nam %s co 28 ngay." % nam
Output:
[​IMG]

No comments:

Post a Comment