- Câu lệnh điều kiện ======
Trong Python, câu lệnh điều kiện cho phép thực thi các khối mã khác nhau dựa trên kết quả của một hoặc nhiều biểu thức (True hoặc False). Hình ảnh dưới đây minh họa quy trình thực thi của câu lệnh điều kiện.
Ngôn ngữ Python coi mọi giá trị khác 0 và khác null (rỗng) là True, trong khi 0 hoặc null là False.
Trong lập trình Python, câu lệnh if được sử dụng để kiểm soát luồng thực thi của chương trình, cấu trúc cơ bản như sau:
if điều_kiện:
khối_lệnh_thực_thi...
else:
khối_lệnh_thực_thi_khác...
Trong đó, nếu "điều kiện" là True (khác 0), thì các câu lệnh phía sau sẽ được thực thi. Nội dung thực thi có thể bao gồm nhiều dòng, được xác định bởi thụt lề để biểu thị cùng một phạm vi.
Câu lệnh else là tùy chọn, được sử dụng khi cần thực thi một khối mã khi điều kiện không được thỏa mãn.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Tác giả: Minh Anh
so = 1
while so < 5:
if(so % 2 == 0):
print(so, "là số chẵn")
else:
print(so, "là số lẻ")
so += 1
Các toán tử so sánh có thể được sử dụng trong điều kiện của câu lệnh if bao gồm: > (lớn hơn), < (nhỏ hơn), == (bằng), >= (lớn hơn hoặc bằng), <= (nhỏ hơn hoặc bằng).
Khi cần kiểm tra nhiều điều kiện, có thể sử dụng cấu trúc 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_3:
khối_lệnh_3...
else:
khối_lệnh_4...
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Tác giả: Minh Anh
gia_tri = 5
if gia_tri == 3: # Kiểm tra giá trị của gia_tri
print('admin')
elif gia_tri == 2:
print('member')
elif gia_tri == 1:
print('guest')
elif gia_tri < 0: # Xuất khi giá trị nhỏ hơn 0
print('lỗi')
else:
print('khách') # Xuất khi không điều kiện nào đúng
Vì Python không hỗ trợ câu lệnh switch, nên việc kiểm tra nhiều điều kiện chỉ có thể thực hiện bằng cách sử dụng elif. Nếu cần kiểm tra nhiều điều kiện cùng lúc, có thể sử dụng or (hoặc), biểu thị điều kiện thành công khi một trong hai điều kiện đúng; sử dụng and (và) khi chỉ điều kiện thành công khi cả hai điều kiện cùng đúng.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Tác giả: Minh Anh
gia_tri = 9
if gia_tri >= 0 and gia_tri <= 10: # Kiểm tra giá trị có nằm trong khoảng 0~10 không
print('xin chào')# Kết quả xuất: xin chào
<p>gia_tri = 10<br></br>
if gia_tri < 0 or gia_tri > 10: # Kiểm tra giá trị có nhỏ hơn 0 hoặc lớn hơn 10 không<br></br>
print('xin chào')<br></br>
else:<br></br>
print('không xác định')# Kết quả xuất: không xác định</p>
<p>gia_tri = 8# Kiểm tra giá trị có nằm trong khoảng 0<sub>5 hoặc 10</sub>15 không<br></br>
if (gia_tri >= 0 and gia_tri <= 5) or (gia_tri >= 10 and gia_tri <= 15):<br></br>
print('xin chào')<br></br>
else:<br></br>
print('không xác định')</p>
Khi câu lệnh if có nhiều điều kiện, có thể sử dụng dấu ngoặc đơn để phân biệt thứ tự ưu tiên. Đoạn điều kiện trong ngoặc đơn được thực thi trước. Ngoài ra, toán tử and và or có độ ưu tiên thấp hơn các toán tử so sánh như > (lớn hơn), < (nhỏ hơn), tức là các phép so sánh lớn hơn và nhỏ hơn sẽ được thực thi trước so với and hoặc or khi không có dấu ngoặc.
- Câu lệnh vòng lặp
Ngôn ngữ lập trình cung cấp nhiều cấu trúc kiểm soát khác nhau, cho phép các đường dẫn thực thi phức tạp hơn.
Câu lệnh vòng lặp cho phép chúng ta thực thi một câu lệnh hoặc một nhóm câu lệnh nhiều lần. Dưới đây là cấu trúc tổng quát của câu lệnh vòng lặp trong hầu hết các ngôn ngữ lập trình:
Python cung cấp vòng lặp for và vòng lặp while (Python không có vòng lặp do..while):
Câu lệnh kiểm soát vòng lặp
Các câu lệnh kiểm soát vòng lặp có thể thay đổi thứ tự thực thi của câu lệnh. Python hỗ trợ các câu lệnh kiểm soát vòng lặp sau:
2.1 Câu lệnh While Vòng lặp
Trong lập trình Python, câu lệnh while được sử dụng để thực thi lặp lại một chương trình, tức là trong một điều kiện nhất định, lặp lại thực thi một đoạn chương trình để xử lý các nhiệm vụ giống nhau cần được xử lý lặp đi lặp lại. Cấu trúc cơ bản của nó như sau:
while điều_kiện:<br></br>
khối_lệnh_thực_thi...
Khối lệnh thực thi có thể là một câu lệnh đơn hoặc một khối câu lệnh. Điều kiện có thể là bất kỳ biểu thức nào, bất kỳ giá trị nào khác 0 hoặc khác null đều là True.
Khi điều kiện là False, vòng lặp kết thúc.
Luồng thực thi như sau:
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>i = 1<br></br>
while i < 10:<br></br>
print(i)<br></br>
i += 2</p>
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>so_list = [12,37,5,42,8,3]<br></br>
so_chan = []<br></br>
so_le = []<br></br>
while len(so_list) > 0:<br></br>
so = so_list.pop()<br></br>
if(so % 2 == 0):<br></br>
so_chan.append(so)<br></br>
else:<br></br>
so_le.append(so)<br></br>
print(so_chan, "\n", so_le)</p>
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>dem = 0<br></br>
while(dem < 9):<br></br>
print("đây là một bài kiểm tra:", dem)<br></br>
dem = dem +1<br></br>
print("tạm biệt")</p>
Với câu lệnh while, còn có hai lệnh quan trọng khác là continue và break để bỏ qua vòng lặp. continue được sử dụng để bỏ qua lần lặp hiện tại, break được sử dụng để thoát khỏi vòng lặp. Ngoài ra, "điều kiện" cũng có thể là một hằng số, biểu thị vòng lặp luôn đúng. Cách sử dụng cụ thể như sau:
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>i = 1<br></br>
while i < 10:<br></br>
i+=1<br></br>
if i%2 >0:<br></br>
continue<br></br>
print(i)</p>
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>i = 1while 1:<br></br>
print(i)<br></br>
i+=1<br></br>
if i > 10:<br></br>
break</p>
Vòng lặp vô hạn
Nếu điều kiện của vòng lặp luôn là True, vòng lặp sẽ được thực thi vô hạn, như trong ví dụ sau:
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>bien = 1<br></br>
while bien == 1: # Điều kiện này luôn là True, vòng lặp sẽ thực thi vô hạn<br></br>
so = input("Nhập một số :")<br></br>
print("Bạn đã nhập: ", so)<br></br>
print("Tạm biệt!")</p>
Vòng lặp sử dụng câu lệnh else
Trong Python, while … else thực thi khối lệnh else khi điều kiện của vòng lặp là False:
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>dem = 0<br></br>
while dem < 5:<br></br>
print(dem, "nhỏ hơn 5")<br></br>
dem = dem + 1<br></br>
else:<br></br>
print(dem, "không nhỏ hơn 5 ")</p>
2.2 Câu lệnh for vòng lặp
Vòng lặp for trong Python có thể duyệt qua các mục của bất kỳ chuỗi nào, chẳng hạn như một danh sách hoặc một chuỗi ký tự.
Cú pháp:
Cú pháp của vòng lặp for như sau:
for bien_lap in chuoi:<br></br>
các_câu_lệnh(s)
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>for ky_tu in 'python':<br></br>
print("Ký tự hiện tại:", ky_tu)</p>
<p>trai_cay = ['chuối','táo','xoài']<br></br>
for trai in trai_cay:<br></br>
print("Trái cây hiện tại", trai)<br></br>
print("Tạm biệt..")</p>
Duyệt qua chỉ mục chuỗi
Một cách khác để thực thi vòng lặp là thông qua chỉ mục, như trong ví dụ sau:
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>trai_cay = ['chuối','táo','xoài']<br></br>
for chi_so in range(len(trai_cay)):<br></br>
print("Trái cây hiện tại", trai_cay[chi_so])</p>
<p>print("Tạm biệt")</p>
Ví dụ trên đã sử dụng các hàm tích hợp len() và range(). Hàm len() trả về độ dài của danh sách, tức là số lượng phần tử. Hàm range() trả về một chuỗi các số.
Vòng lặp sử dụng câu lệnh else
Trong Python, for … else có nghĩa là: các câu lệnh trong for không khác gì bình thường, các câu lệnh trong else sẽ được thực thi khi vòng lặp kết thúc bình thường (tức là for không bị ngắt bởi break), while … else cũng tương tự.
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>for so in range(10,20):<br></br>
for i in range(2,so):<br></br>
if so%i == 0:<br></br>
j = so/i<br></br>
print("%d bằng %d * %d"%(so,i,j))<br></br>
break<br></br>
else:<br></br>
print(so, "là một số nguyên tố")</p>
2.3 Vòng lặp lồng nhau
Ngôn ngữ Python cho phép lồng một vòng lặp vào bên trong một vòng lặp khác.
Cú pháp vòng lặp for lồng nhau trong Python:
for bien_lap in chuoi:<br></br>
for bien_lap in chuoi:<br></br>
các_câu_lệnh(s)<br></br>
các_câu_lệnh(s)
Bạn có thể lồng các vòng lặp khác nhau vào bên trong vòng lặp, chẳng hạn như trong vòng lặp while có thể lồng vòng lặp for, và ngược lại, bạn có thể lồng vòng lặp while vào trong vòng lặp for.
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>i = 2<br></br>
while (i < 100):<br></br>
j = 2<br></br>
while (j<=(i/j)):<br></br>
if not (i % j): break<br></br>
j = j + 1<br></br>
if (j>i/j):print(i, "là số nguyên tố")<br></br>
i = i + 1<br></br>
print("Tạm biệt!")</p>
3 Câu lệnh kiểm soát vòng lặp
3.1 Câu lệnh break
Câu lệnh break trong Python, giống như trong ngôn ngữ C, phá vỡ vòng lặp for hoặc while nhỏ nhất.
Câu lệnh break được sử dụng để kết thúc vòng lặp, tức là dù điều kiện của vòng lặp là False hay chuỗi chưa được duyệt hết, vòng lặp cũng sẽ ngừng thực thi.
Câu lệnh break được sử dụng trong các vòng lặp while và for.
Nếu bạn sử dụng vòng lặp lồng nhau, câu lệnh break sẽ dừng thực thi vòng lặp sâu nhất và bắt đầu thực thi dòng mã tiếp theo.
Cú pháp câu lệnh break trong Python:
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>for ky_tu in 'Python': # Ví dụ đầu tiên<br></br>
if ky_tu == 'h':<br></br>
break<br></br>
print('Ký tự hiện tại :', ky_tu)</p>
<p>bien = 10 # Ví dụ thứ hai<br></br>
while bien > 0:<br></br>
print('Giá trị biến hiện tại :', bien)<br></br>
bien = bien - 1<br></br>
if bien == 5: # Thoát vòng lặp khi biến bien bằng 5<br></br>
break<br></br>
breakprint("Tạm biệt!")</p>
3.2 Câu lệnh continue
Câu lệnh continue bỏ qua lần lặp hiện tại, trong khi break bỏ qua toàn bộ vòng lặp.
Câu lệnh continue được sử dụng để báo cho Python bỏ qua các câu lệnh còn lại của lần lặp hiện tại và tiếp tục với lần lặp tiếp theo.
Câu lệnh continue được sử dụng trong các vòng lặp while và for.
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<p>for ky_tu in 'Python': # Ví dụ đầu tiên<br></br>
if ky_tu == 'h':<br></br>
continue<br></br>
print('Ký tự hiện tại :', ky_tu)</p>
<p>bien = 10 # Ví dụ thứ hai<br></br>
while bien > 0:<br></br>
bien = bien - 1<br></br>
if bien == 5:<br></br>
continue<br></br>
print('Giá trị biến hiện tại :', bien)<br></br>
print("Tạm biệt!")</p>
3.3 Câu lệnh pass
Python pass là câu lệnh trống, được sử dụng để duy trì tính toàn vẹn cấu trúc của chương trình.
pass không làm gì cả, thường được sử dụng như một câu lệnh giữ chỗ.
#!/usr/bin/env python<p></p>
<h1>-<em>- coding: utf-8 -</em>-</h1>
<h1>Tác giả: Minh Anh</h1>
<h1>Xuất mỗi ký tự của Python</h1>
<p>for ky_tu in 'Python':<br></br>
if ky_tu == 'h':<br></br>
pass<br></br>
print('Đây là khối pass')<br></br>
print('Ký tự hiện tại :', ky_tu)<br></br>
print("Tạm biệt!")</p>