Python – Câu lệnh điều kiện và vòng lặp


Được đăng vào ngày 21/01/2016 | 0 bình luận
Python – Câu lệnh điều kiện và vòng lặp
4.7 (94.29%) 14 votes

Trong phần này chúng ta sẽ tìm hiểu về câu lệnh điều kiện và vòng lặp.

Trong lập trình có những trường hợp bạn phải tùy theo dữ liệu mà có những kiểu xử lý khác nhau. Ví dụ như bài toán tìm nghiệm của phương trình bậc hai, bạn sẽ phải đưa ra 3 kết quả khác nhau khi delta khác nhau. Khi đó bạn phải dùng đến câu lệnh điều kiện. Câu lệnh điều kiện đánh giá xem một trường hợp là đúng (true) hay sai (false), để dẫn tới các quyết định khác nhau.

Mặc định trong Python thì các giá trị không phải kiểu boolean mà có giá trị khác 0 hay khác rỗng đều có thể chuyển thành boolean mang giá trị True, còn nếu bằng 0 hay rỗng thì mang giá trị False.

Câu lệnh If

if (biểu thức):
    các câu lệnh

Câu lệnh if kiểm tra xem biểu thức mang giá trị True hay False, nếu true thì thực thi các câu lệnh.

number = 8
if (number % 2 == 0):
    print (number, "is an even number")

Trong ví dụ trên, chúng ta kiểm tra xem number có phải là số chẵn hay không.

Number is an even number

Câu lệnh If..elif..else

if (biểu thức 1):
    các câu lệnh
elif (biểu thức 2):
    các câu lệnh
elif (biểu thức n):
    các câu lệnh
else:
    các câu lệnh

Nếu bạn có nhiều trường hợp cần xử lý, chẳng hạn như tìm nghiệm phương trình bậc 2 có tới 3 trường hợp của delta, thì bạn sử dụng cú pháp if..elif..else.

time = 10
if (time < 10):
    print ("Good morning")
elif (time < 20):
    print ("Good day")
else:
    print ("Good evening")

Đoạn code trên kiểm tra nếu time < 10 thì in ra Good morning, nếu time < 20 thì in ra Good day, còn nếu không phải 2 trường hợp trên thì in ra Good evening.

Good day

Ngoài ra bạn cũng có thể lồng các câu lệnh if vào nhau. Xem ví dụ.

var1 = 100
if var1:
   print("1 - Got a true expression value")
   print (var1)
else:
   print("1 - Got a false expression value")
   print(var1)

var2 = 0
if var2:
   print("2 - Got a true expression value")
   print(var2)
else:
   print("2 - Got a false expression value")
   print(var2)
1 - Got a true expression value
100
2 - Got a false expression value
0

Bây giờ chúng ta sẽ tìm hiểu về vòng lặp.

Khi Python dịch một chương trình thì nó sẽ dịch các câu lệnh một cách có thứ tự từ trên xuống dưới. Đôi khi bạn muốn làm một công việc có tính chất lặp đi lặp lại, chẳng hạn như in ra các số chẵn từ 0→1000. Bạn không thể ngồi gõ 1000 câu lệnh if..print được. Bạn sẽ phải dùng dến vòng lặp.

Vòng lặp while

Vòng lặp while thường dùng khi bạn chưa biết trước số lượng vòng lặp cần dùng.

while (biểu thức):
    các câu lệnh

Ý nghĩa của câu lệnh này là trong khi điều kiện còn đúng thì thực hiện các câu lệnh.

x = 0
while (x < 1000):
    x = x + 1
print (x)

Trong đoạn code trên, trong khi x vẫn còn < 1000 thì tăng x lên 1.

1000

Bạn có thể dùng while…else trong Python, cú pháp này có tác dụng thực thi các câu lệnh sau khi rời khỏi vòng lặp.

count = 0
while count < 5:
   print (count, " is  less than 5")
   count = count + 1
else:
   print (count, " is not less than 5")
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5

Vòng lặp for

Vòng lặp for thường được dùng khi bạn đã biết trước số lượng vòng lặp cần thực hiện.

for biến lặp in tập hợp:
    các câu lệnh

Biến lặp có thể là bất cứ biến nào. Bạn chỉ cần đưa vào một cái tên là Python sẽ tự ngầm hiểu kiểu dữ liệu. Còn tập hợp có thể là bất kỳ kiểu tập hợp nào mà chúng ta đã học trong bài trước, hoặc cũng có thể là một string.

for letter in 'Python':   
   print('Current Letter :', letter)

fruits = ['banana', 'apple',  'mango']</span>
for fruit in fruits:    
   print ('Current fruit :', fruit)
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango

Bạn cũng có thể dùng vòng lặp for theo chỉ số.

fruits = ['banana','apple',  'mango']
for index in range(len(fruits)):
   print ('Current fruit :', fruits[index])
Current fruit : banana
Current fruit : apple
Current fruit : mango

Cũng giống như vòng lặp while, bạn cũng có thể dùng else cho vòng lặp for.

for num in range(10,20):
   for i in range(2,num):
      if num%i == 0:      
         j=num/i         
         print('%d equals %d * %d' % (num,i,j))
         break
   else:               
      print (num, 'is a prime number')

Ví dụ trên tìm ước số của các số khác 1 và chính nó của từ 10 đến 20. Nếu không tìm thấy thì thông báo số đó là số nguyên tố. Và cũng giống như các câu lệnh điều kiện, bạn cũng có thể lồng các vòng lặp vào nhau.

10 equals 2 * 5
11 is a prime number
12 equals 2 * 6
13 is a prime number
14 equals 2 * 7
15 equals 3 * 5
16 equals 2 * 8
17 is a prime number
18 equals 2 * 9
19 is a prime number

Câu lệnh Break

Khi bạn muốn dừng vòng lặp giữa chừng thì dùng câu lệnh break.

for letter in 'Python':
   if letter == 'h':
      break
   print ('Current Letter :', letter)
  
var = 10                
while var > 0:           
   print ('Current variable value :', var)
   var = var -1
   if var == 5:
      break

Trong đoạn code trên, ở vòng lặp for chúng ta sẽ dừng vòng lặp nếu tìm thấy kí tự ‘h’ trong chuỗi “Python”, ở vòng lặp while thì sẽ dừng vòng lặp khi biến var giảm bằng 5.

Current Letter : P
Current Letter : y
Current Letter : t
Current variable value : 10
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6

Câu lệnh Continue

Câu lệnh continue có tác dụng nhảy sang lần lặp kế tiếp. Các câu lệnh phía sau contine sẽ không được thực thi.

for letter in 'Python':     
   if letter == 'h':
      continue
   print ('Current Letter :', letter)

var = 10                    
while var > 0:              
   var = var -1
   if var == 5:
      continue
   print ('Current variable value :', var)

Trong ví dụ trên, ở vòng lặp for, chúng ta cho lặp tiếp khi tìm thấy kí tự ‘h’ mà không in ký tự đó ra màn hình. Còn ở vòng lặp while thì chúng ta cho lặp tiếp khi biến var bằng 5.

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
Current variable value : 4
Current variable value : 3
Current variable value : 2
Current variable value : 1
Current variable value : 0






Trả lời


Lưu ý: bọc code trong cặp thẻ [code language="x"][/code] để highlight code.


Ví dụ:


[code language="cpp"]


std::cout << "Hello world";


[/code]



Các ngôn ngữ được hỗ trợ gồm: actionscript3, bash, clojure, coldfusion, cpp, csharp, css, delphi, diff, erlang, fsharp, go, groovy, html, java, javafx, javascript, latex, matlab, objc, perl, php, powershell, python, r, ruby, scala, sql, text, vb, xml.

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *