Python-Keyword

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

Be the first to comment

Leave a Reply