Contents
Trong phần này, chúng ta cùng tìm hiểu các keyword trong ngôn ngữ Python.
Python keyword
Keyword trong Python là một từ đặc biệt được dùng để tạo tập lệnh trong Python. Các định danh (tên biến, tên hàm, class) không được đặt trùng tên với keyword
Keyword list
False def if raise None del import return True elif in try and else is while as except lambda with assert finally nonlocal yield break for not class from or continue global pass
Python là ngôn ngữ động (open source), liên tục được update. Do vậy, list keyword trên đây có thể thay đổi theo thời gian.
Ví dụ 1: Hiển thị ra tất cả các keyword trong Python.
import sys import keyword print("Python version: ", sys.version_info) print("Python keywords: ", keyword.kwlist)
Chương trình in ra version Python và danh sách các keyword
Kết quả:
C:\Users\Dell>python test.py Python version: sys.version_info(major=3, minor=7, micro=0, releaselevel='final', serial=0) Python keywords: ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Note: version Python sử dụng trong ví dụ này là: 3.7.0
Câu lệnh điều khiển
Keyword while là keyword điều kiển flow. Khối lệnh bên trong vòng lặp while được thực thi cho đến khi biểu thức điều kiện là False.
Ví dụ 2: Tính tổng dùng keyword while
numbers = [22, 34, 12, 32, 4] mysum = 0 i = len(numbers) while i != 0: i -= 1 mysum = mysum + numbers[i] print("The sum is:", mysum)
Trong script chúng ta muốn tính tổng các giá trị trong list. Chúng ta sử dụng vòng lặp while.
i = len(numbers)
Tính chiều dài list
while i != 0: i -= 1 mysum = mysum + numbers[i]
Vòng lặp được thực hiện lặp lại cho đến khi giá trị i = 0. Khối lệnh trong vòng lặp, chúng ta giảm biến đếm i và tính tổng các giá trị.
Kết quả:
C:\Users\Dell>python test.py
The sum is: 104
Ví dụ 3: Sử dụng keyword break để thoát khỏi vòng lặp
import random while True: val = random.randint(1, 30) print(val, end=" ") if val == 22: break print()
Trong ví dụ này, chúng ta in các số nguyên một cách ngẫu nhiên. Nếu số bằng 22, vòng lặp kết thúc với keyword break
Kết quả:
C:\Users\Dell>python test.py
16 3 16 18 5 7 27 20 27 26 6 19 22
Tiếp theo, chúng ta cùng tìm hiểu sử dụng keyword continue, được sử dụng để stop chu kỳ lặp hiện tại và thực hiện chu kì lặp mới
Ví dụ 4: Sử dụng keyword continue
num = 0 while num < 1000: num = num + 1 if num % 2 == 0: continue print(num, end=" ")
Trong ví dụ, chúng ta in tất cả các số nhỏ hơn 1000 mà không chia hết cho 2.
num = num + 1
Mỗi chu kì lặp sẽ tăng biến num lên 1
if num % 2 == 0: continue
Kiểm tra nếu số chia hết cho 2, thực hiện lệnh continue, lệnh print(num, end=” “) không được thực hiện, tiếp tục 1 chu kì mới.
Nếu số không chia hết cho 2, lệnh print(num, end=” “) được thực hiện.
Tiếp theo chúng ta tìm hiểu keyword if, dùng để quyết định xem nên thực hiện câu lệnh nào.
Ví dụ 5: Sử dụng keyword if else
age = 17 if age > 18: print("Driving licence issued") else: print("Driving licence not permitted")
Keyword if kiểm tra nếu biểu thức (age > 18) là True, in ra “Driving licence issued”.
Keyword else là tùy ý (có thể có hoặc không), nếu biểu thức điều kiện trong keyword if là False, thì câu lệnh trong keyword else được thực hiện.
Kết quả:
C:\Users\Dell>python test.py
Driving licence not permitted
Tiếp theo chúng ta tìm hiểu cách sử dụng keyword elif
Ví dụ 6: Sử dụng keyword elif
name = "Luke" if name == "Jack": print("Hello Jack!") elif name == "John": print("Hello John!") elif name == "Luke": print("Hello Luke!") else: print("Hello there!")
Nếu biểu thức điều kiện của if là False, thực hiện đánh giá biểu thức điều kiện elif tiếp theo. Nếu biểu thức điều kiện elif là True, thực hiện khối lệnh trong biểu thức elif đó. Nếu biểu thức điều kiện của tất cả elif là False, câu lệnh trong keyword else được thực hiện.
Kết quả:
C:\Users\Dell>python test.py
Hello Luke!
Tiếp theo chúng ta tìm hiểu keyword for, được dùng để duyệt các phần tử trong collection (list, tuple,…)
Ví dụ 7: Sử dụng keyword for
lyrics = """\ Are you really here or am I dreaming I can't tell dreams from truth for it's been so long since I have seen you I can hardly remember your face anymore """ for i in lyrics: print(i, end=" ")
Trong ví dụ, chúng ta định nghĩa string lyrics chứa một đoạn ngắn của một bài hát. Dùng vòng lặp for duyệt từng kí tự string lyrics. Dấu phẩy trong lệnh print(i, end=” “) ngăn không cho in kí tự trên dòng mới
Kết quả:
C:\Users\Dell>python test.py A r e y o u r e a l l y h e r e o r a m I d r e a m i n g I c a n ' t t e l l d r e a m s f r o m t r u t h f o r i t ' s b e e n s o l o n g s i n c e I h a v e s e e n y o u I c a n h a r d l y r e m e m b e r y o u r f a c e a n y m o r e
Biểu thức bool
Trong phần này, chúng ta cùng tìm hiểu các keyword làm việc với biểu thức bool: is, or, and, and not.
Ví dụ 8: Sử dụng keyword bool
print(None == None) print(None is None) print(True is True) print([] == []) print([] is []) print("Python" is "Python")
Toán tử == so sánh 2 đối tượng, keyword is để kiểm tra tính nhận dạng object. Liệu chúng ta đang nói về cùng 1 object. Chú ý: nhiều biến có thể tham chiếu tới cùng 1 object.
Kết quả:
C:\Users\Dell>python test.py
True
True
True
True
False
True
Kết quả có thể khiến bạn ngạc nhiên. Trong ngôn ngữ Python, chỉ có duy nhất 1 object None và True. Đó là lí do tại sao True bằng và cùng là 1 object True. list rỗng [] bằng với 1 list rông khác [], nhưng ko phải cùng 1 object. Python đặt 2 object list rỗng [] vào 2 vùng nhớ khác nhau. Do đó keyword is trả về False. Tuy nhiên, “Python” is “Python” lại trả về True. Đối với 2 hằng số giống nhau, chúng được lưu vào cùng 1 vùng nhớ.
Tiếp theo, chúng ta đi tìm hiểu keyword not – dùng để phủ định giá trị bool
Ví dụ 9: Sử dụng keyword not
grades = ["A", "B", "C", "D", "E", "F"] grade = "L" if grade not in grades: print("unknown grade")
Trong ví dụ này, chúng ta kiểm tra xem grade = “L” có nằm trong list grades không. Nếu không thuộc list, in ra “unknown grade”.
Kết quả:
C:\Users\Dell>python test.py
unknown grade
Câu lệnh trong keyword and được sử dụng nếu tất cả các biểu thức bool đều là True
Ví dụ 10: Sử dụng keyword and
sex = "M" age = 26 if age < 55 and sex == "M": print("a young male")
Cả 2 biểu thức bool (age < 55) và (sex == "M") đều có giá trị True, in ra text "a young male". Câu lệnh trong keyword or được thực hiện nếu ít nhất 1 biểu thức bool có giá trị True Ví dụ 11: Sử dụng keyword or
name = "Jack" if (name == "Robert" or name == "Frank" or name == "Jack" or name == "George" or name == "Luke"): print("This is a male")
Nếu ít nhất 1 trong các biểu thức bool ở trên là True, in ra màn hình console “This is a male”.
Chú ý: Khi sử dụng keyword and/or trong Python, việc đánh giá short circuit (ngắn mạch) được thực hiện. Ngắn mạch nghĩa là biểu thức điều kiện thứ 2 chỉ được đánh giá nếu biểu thức điều kiện thứ nhất không đủ để quyết định giá trị của phép toán and/or.
– Phép toán and: A and B => nếu A = False, A and B = False và không cần thực hiện đánh giá B; nếu A = True, cần đánh giá B thì mới quyết định được giá trị của (A and B)
– Phép toán or: A or B => nếu A = True, A or B = True và không cần thực hiện đánh giá B; nếu A = False, cần đánh giá B thì mới quyết định được giá trị của (A or B)
Ví dụ 12: Ví dụ ngắn mạch (short circuit)
x = 10 y = 0 if (y != 0 and x/y < 100): print("a small value")
Nếu biểu thức điều kiện thứ nhất (y != 0) = False, thì biểu thức điều kiện thứ 2 (x/y < 100) ko được thực hiện. Nếu biểu thức x/y được thực hiện, Python bắn ra exception ZeroDivisionError
Python module
Module trong Python là các file chưa Python source code (có thể là các library có sẵn của Python, hoặc do developer tự define). Chúng ta cùng tìm hiểu các keyword được sử dụng với module
Keyword import được sử dụng để import các module khác vào script Python
Ví dụ 13: Sử dụng keyword import
import math print(math.pi)
Chúng ta sử dụng keyword import đê import module math vào namespace của script. Sau đó, chúng ta in ra giá trị PI
Kết quả:
C:\Users\Dell>python test.py
3.141592653589793
Keyword as được sử dụng để đặt alias khác cho module khi import
Ví dụ 14: Sử dụng keyword as
import random as rnd for i in range(10): print (rnd.randint(1, 10), end=" ") print()
Trong ví dụ này, chúng ta import module random và gán cho module random một alias rnd. Sau đó, chúng ta có thể sử dụng alias rnd để gọi các function, thuộc tính của module.
Kết quả:
C:\Users\Dell>python test.py
5 2 7 5 9 9 1 7 9 9
Keyword from được sử dụng để import một biến, class hoặc function từ module.
Ví dụ 14: Sử dụng keyword from
from sys import version print(version)
Import biến version trong module sys. Sau đó in ra giá trị biến version.
Kết quả:
C:\Users\Dell>python test.py
3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
Python function
Chúng ta tìm hiểu keyword liên quan tới function. Keyword def được sử dụng để tạo function mới. Các function là các object chứa các đoạn code xử lí 1 chức năng nào đó.
Ví dụ 15: Function tính giá trị bình phương
def root(x): return x * x a = root(2) b = root(15) print(a, b)
Ví dụ này minh họa việc tạo function đơn gian. Function tính bình phương của một số. Keyword return trả về giá trị x*x.
a = root(2) b = root(15)
Hàm root() trả về giá trị và lưu vào biến a và b
Kết quả:
C:\Users\Dell>python test.py
4 225
Keyword lambda tạo 1 function ẩn danh (anonymous function). Function ẩn danh là không ràng buộc tên function.
Ví dụ 16: Tạo function ẩn danh
a = lambda x: x * x for i in (1, 2, 3, 4, 5): print(a(i), end=" ") print()
Trong ví dụ này, chúng ta không tạo function với keyword def, mà định nghĩa function sử dụng keyword lambda.
Kết quả:
C:\Users\Dell>python test.py
1 4 9 16 25
Sử dụng keyword global nếu chúng ta muốn access vào biến nằm ngoài function.
Ví dụ 17: Sử dụng keyword global
x = 15 def function(): global x x = 45 function() print(x)
Thông thường, khi assign biến x bên trong function, chúng ta cần tạo biến local mới và biến này chỉ valid trong function. Nếu chúng ta sử dụng keyword global, chúng ta thay đổi giá trị biến x được định nghĩa ngoài function.
Kết quả:
C:\Users\Dell>python test.py
45
Python exception
Trong phần này, chúng ta tìm hiểu keyword liên quan đến exception.
Ví dụ 18: keyword try/except/finally
f = None try: f = open('films', 'r') for i in f: print(i, end="") except IOError: print("Error reading file") finally: print("finally keyword") if f: f.close()
Chúng ta đọc file ‘films’, nếu không xảy ra exception, chương trình in ra nội dung file. Giả sử file films không tồn tại, exception IOError xuất hiện. Keyword except bắt exception và in ra text “Error reading file”. Keyword finally luôn được thực hiện cuối cùng.
Kết quả:
C:\Users\Dell>python test.py
Error reading file
finally keyword
Trong ví dụ tiếp theo, chúng ta tạo ra exception bằng keyword raise
Ví dụ 19: Sử dụng keyword raise để tạo exception
class YesNoException(Exception): def __init__(self): print('This is not a yes or no answer') answer = 'y' if (answer != 'yes' and answer != 'no'): raise YesNoException else: print('Correct value')
Trong ví dụ, chúng ta tự define class exception YesNoException. Giá trị answer nếu khác ‘yes’ và ‘no’, raise exception.
Kết quả:
This is not a yes or no answer
Traceback (most recent call last):
File “test.py”, line 11, in
raise YesNoException
__main__.YesNoException
Keyword khác
Keyword del để xóa object
Ví dụ 20: Sử dụng keyword del để xóa object
a = [1, 2, 3, 4] print(a) del a[:2] print(a)
Trong ví dụ này, chúng ta kha báo list a các số nguyên. keyword del a[:2] sẽ xóa phần tử đầu tiên đến phần tử thứ 2.
Kết quả:
C:\Users\Dell>python test.py
[1, 2, 3, 4]
[3, 4]
Keyword pass không làm gì cả, sẽ hữu ích trong một số trường hợp
def function(): pass
Chúng ta định nghĩa 1 function. Function này chưa được implement (Sẽ implement sau đó. Body của function không được phép để trống. Do đó, chúng ta sử dụng keyword pass thay vì thêm dòng lệnh print() để in nội dung gì đó.
Keyword assert được sử dụng để debug. Chúng ta có thể sử dụng nó cho testing. Ví dụ, chúng ta có chương trình tính lương. Chúng ta biết rằng lương không thể nhỏ hơn 0. Do vậy, chúng ta có để sử dụng keyword assert để kiểm tra lương nhỏ hơn 0. Nếu lương nhỏ hơn 0, chương trình báo lỗi
Ví dụ 21: Sử dụng keyword assert
salary = 3500 salary -= 3560 # a mistake was done assert salary > 0
Kết quả:
C:\Users\Dell>python test.py
Traceback (most recent call last):
File “test.py”, line 4, in
assert salary > 0
AssertionError
Keyword class được sử dụng để tạo class object
Ví dụ 22: Sử dụng keyword class
class Square: def __init__(self, x): self.a = x def area(self): print(self.a * self.a) sq = Square(12) sq.area()
Trong ví dụ, chúng ta tạo class Square. Sau đó tạo 1 object sq. Chúng ta tính toán diện tích hình vuông/
Kết quả:
C:\Users\Dell>python test.py
144
Keyword exec thực thi code Python động
Ví dụ 23: Sử dụng keyword exec để thực hiện script Python động
exec("for i in [1, 2, 3, 4, 5]: print(i, end=' ')")
In ra 5 số sử dụng vòng lặp for, tất cả code xử lí đều được đặt trong keyword exec.
Kết quả:
C:\Users\Dell>python test.py
1 2 3 4 5
Keyword in được sử dụng để kiểm tra phần tử có nằm trong collection hay không (list, tuple,…)
Ví dụ 24: sử dụng keyword in
print(4 in (2, 3, 5, 6)) for i in range(25): print(i, end=" ") print()
Trong ví dụ, chúng ta sử dụng keyword in để kiểm tra phần tử 4 có nằm trong list hay không. Duyệt tuple trong vòng lặp for.
Kết quả:
C:\Users\Dell>python test.py
False
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Keyword yield được dùng để trả về 1 genator.
Ví dụ 25: Sử dụng yield
def gen(): x = 11 yield x it = gen() print(it.__next__())
Keyword yield giống với return là trả về. Keyword return trả về giá trị, yield trả về genator
Kết quả:
C:\Users\Dell>python test.py
11
Leave a Reply
You must be logged in to post a comment.