Hàm trong python dụng từ khóa nào

Các khóa học qua video:
Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript

Mục lục bài viết:

  • Từ khóa Python
  • Cách xác định từ khóa Python
    • Sử dụng IDE với Đánh dấu cú pháp
    • Sử dụng mã trong REPL để kiểm tra từ khóa
    • Tìm kiếm lỗi SyntaxError
  • Từ khóa Python và cách sử dụng chúng
    • Từ khóa giá trị: Đúng, Sai, Không có
    • Từ khóa của nhà điều hành: và, hoặc, không, ở, là
    • Từ khóa luồng kiểm soát: if, elif, else
    • Từ khóa lặp lại: cho, trong khi, ngắt, tiếp tục, khác
    • Từ khóa cấu trúc: def, class, with, as, pass, lambda
    • Từ khóa trả lại: trở lại, lợi nhuận
    • Nhập Từ khoá: nhập, từ, như
    • Từ khóa xử lý ngoại lệ: thử, ngoại trừ, nâng cao, cuối cùng, khác, khẳng định
    • Từ khóa lập trình không đồng bộ: không đồng bộ, chờ đợi
    • Các Từ khoá Xử lý Biến: del, global, nonlocal
  • Từ khóa Python không được dùng nữa
    • Từ khóa in trước đây
    • Từ khóa của Giám đốc điều hành cũ
  • Phần kết luận

Mọi ngôn ngữ lập trình đều có các từ hoặc từ khóa dành riêng đặc biệt , có ý nghĩa và hạn chế cụ thể về cách sử dụng chúng. Python cũng không khác. Từ khóa Python là nền tảng cơ bản của bất kỳ chương trình Python nào.

Trong bài viết này, bạn sẽ tìm thấy phần giới thiệu cơ bản về tất cả các từ khóa Python cùng với các tài nguyên khác sẽ hữu ích cho việc tìm hiểu thêm về từng từ khóa.

Đến cuối bài viết này, bạn sẽ có thể:

  • Xác định các từ khóa Python
  • Hiểu từng từ khóa được sử dụng để làm gì
  • Làm việc với các từ khóa theo chương trình bằng cách sử dụng keywordmô-đun

Từ khóa Python

Từ khóa Python là những từ dành riêng đặc biệt có ý nghĩa và mục đích cụ thể và không thể được sử dụng cho bất kỳ mục đích nào ngoài những mục đích cụ thể đó. Những từ khóa này luôn có sẵn — bạn sẽ không bao giờ phải nhập chúng vào mã của mình.

Từ khóa Python khác với các loại và hàm tích hợp sẵn của Python . Các chức năng và kiểu tích hợp cũng luôn có sẵn, nhưng chúng không hạn chế như các từ khóa trong cách sử dụng của chúng.

Một ví dụ về điều gì đó bạn không thể làm với các từ khóa Python là gán một cái gì đó cho chúng. Nếu bạn cố gắng, thì bạn sẽ nhận được một SyntaxError. Bạn sẽ không nhận được SyntaxErrornếu bạn cố gắng gán một thứ gì đó cho một chức năng hoặc kiểu tích hợp sẵn, nhưng nó vẫn không phải là một ý kiến ​​hay. Để có giải thích sâu hơn về các cách từ khóa có thể bị sử dụng sai, hãy xem Cú pháp không hợp lệ trong Python: Các lý do phổ biến cho SyntaxError .

Kể từ Python 3.8, có ba mươi lăm từ khóa trong Python. Đây là chúng với các liên kết đến các phần có liên quan trong suốt phần còn lại của bài viết này:

Bạn có thể sử dụng các liên kết này để chuyển đến các từ khóa bạn muốn đọc hoặc bạn có thể tiếp tục đọc để tham quan có hướng dẫn.

Cách xác định từ khóa Python

Danh sách các từ khóa Python đã thay đổi theo thời gian. Ví dụ: awaitvà asynctừ khóa không được thêm vào cho đến Python 3.7. Ngoài ra, cả hai printvà execđều là từ khóa trong Python 2.7 nhưng đã được chuyển thành các hàm tích hợp trong Python 3+ và không còn xuất hiện trong danh sách từ khóa.

Trong các phần bên dưới, bạn sẽ học một số cách để biết hoặc tìm ra những từ nào là từ khóa trong Python.

Sử dụng IDE với Đánh dấu cú pháp

Có rất nhiều IDE Python tốt trên mạng. Tất cả chúng sẽ làm nổi bật các từ khóa để phân biệt chúng với các từ khác trong mã của bạn. Điều này sẽ giúp bạn nhanh chóng xác định các từ khóa Python trong khi lập trình để bạn không sử dụng chúng sai cách.

Sử dụng mã trong REPL để kiểm tra từ khóa

Trong Python REPL , có một số cách bạn có thể xác định các từ khóa Python hợp lệ và tìm hiểu thêm về chúng.

Lưu ý: Các ví dụ mã trong bài viết này sử dụng Python 3.8 trừ khi được chỉ định khác.

Bạn có thể nhận được danh sách các từ khóa có sẵn bằng cách sử dụng help[]:

>>>

>>> help["keywords"]

Here is a list of the Python keywords.  Enter any keyword to get more help.

False               class               from                or
None                continue            global              pass
True                def                 if                  raise
and                 del                 import              return
as                  elif                in                  try
assert              else                is                  while
async               except              lambda              with
await               finally             nonlocal            yield
break               for                 not

Tiếp theo, như được chỉ ra trong đầu ra ở trên, bạn có thể sử dụng help[]lại bằng cách chuyển từ khóa cụ thể mà bạn cần thêm thông tin. Bạn có thể làm điều này, ví dụ, với passtừ khóa:

>>>

>>> help["pass"]
The "pass" statement
********************

   pass_stmt ::= "pass"

"pass" is a null operation — when it is executed, nothing happens. It
is useful as a placeholder when a statement is required syntactically,
but no code needs to be executed, for example:

   def f[arg]: pass    # a function that does nothing [yet]

   class C: pass       # a class with no methods [yet]

Python cũng cung cấp một keywordmô-đun để làm việc với các từ khóa Python theo cách lập trình. Các keywordmô-đun bằng Python cung cấp hai thành viên hữu ích để đối phó với các từ khóa:

  1. kwlist cung cấp danh sách tất cả các từ khóa Python cho phiên bản Python bạn đang chạy.
  2. iskeyword[] cung cấp một cách hữu ích để xác định xem một chuỗi có phải là một từ khóa hay không.

Để có danh sách tất cả các từ khóa trong phiên bản Python bạn đang chạy và để nhanh chóng xác định số lượng từ khóa được xác định, hãy sử dụng keyword.kwlist:

>>>

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', ...
>>> len[keyword.kwlist]
35

Nếu bạn cần biết thêm về từ khóa hoặc cần làm việc với từ khóa theo cách lập trình, thì Python cung cấp tài liệu và công cụ này cho bạn.

Tìm một SyntaxError

Cuối cùng, một chỉ báo khác cho thấy một từ bạn đang sử dụng thực sự là một từ khóa là nếu bạn SyntaxErrorcố gắng gán cho nó một thời gian, đặt tên cho một chức năng với nó hoặc làm điều gì khác không được phép với nó. Điều này khó phát hiện hơn một chút, nhưng đó là cách Python cho bạn biết bạn đang sử dụng từ khóa không chính xác .

Từ khóa Python và cách sử dụng chúng

Các phần bên dưới sắp xếp các từ khóa Python thành các nhóm dựa trên cách sử dụng của chúng. Ví dụ: nhóm đầu tiên là tất cả các từ khóa được sử dụng làm giá trị và nhóm thứ hai là các từ khóa được sử dụng làm toán tử. Các nhóm này sẽ giúp bạn hiểu rõ hơn về cách các từ khóa được sử dụng và cung cấp một cách hay để tổ chức danh sách dài các từ khóa Python.

Có một số thuật ngữ được sử dụng trong các phần bên dưới có thể mới đối với bạn. Chúng được định nghĩa ở đây và bạn nên biết ý nghĩa của chúng trước khi tiếp tục:

  • Truthiness đề cập đến đánh giá Boolean của một giá trị. Các truthiness của một giá trị cho biết giá trị là truthy hoặc falsy .

  • Truthy có nghĩa là bất kỳ giá trị nào được đánh giá là true trong ngữ cảnh Boolean. Để xác định xem một giá trị có phải là trung thực hay không, hãy chuyển nó làm đối số bool[]. Nếu nó trả về True, thì giá trị là true. Ví dụ về các giá trị trung thực là các chuỗi không trống, bất kỳ số nào không phải là số 0, danh sách không rỗng và nhiều thứ khác.

  • Falsy có nghĩa là bất kỳ giá trị nào được đánh giá là false trong ngữ cảnh Boolean. Để xác định xem một giá trị có phải là sai hay không, hãy chuyển nó làm đối số bool[]. Nếu nó trả về False, thì giá trị là sai. Ví dụ về các giá trị falsy là ""0[]{}, và set[].

Để biết thêm về các thuật ngữ và khái niệm này, hãy xem Toán tử và Biểu thức trong Python .

Giá trị Từ khóa: TrueFalse,None

Có ba từ khóa Python được sử dụng làm giá trị. Các giá trị này là các giá trị đơn lẻ có thể được sử dụng lặp đi lặp lại và luôn tham chiếu đến cùng một đối tượng chính xác. Rất có thể bạn sẽ thấy và sử dụng những giá trị này rất nhiều.

Các Truevà FalseKeywords

Các Truetừ khóa được sử dụng như giá trị thực sự Boolean trong mã Python. Từ khóa Python Falsetương tự như Truetừ khóa, nhưng với giá trị Boolean ngược lại là false. Trong các ngôn ngữ lập trình khác, bạn sẽ thấy những từ khóa này được viết bằng chữ thường [ truevà false], nhưng trong Python, chúng luôn được viết bằng chữ hoa.

Các từ khóa Python Truevà Falsecó thể được gán cho các biến và so sánh trực tiếp với:

>>>

>>> x = True
>>> x is True
True

>>> y = False
>>> y is False
True

Hầu hết các giá trị trong Python sẽ đánh giá Truekhi được chuyển tới bool[]. Chỉ có một vài giá trị trong Python rằng sẽ đánh giá để Falsekhi truyền cho bool[]0""[], và {}đến tên một vài. Truyền một giá trị để bool[]biểu thị độ tin cậy của giá trị hoặc giá trị Boolean tương đương. Bạn có thể so sánh độ tin cậy của giá trị với Truehoặc Falsebằng cách chuyển giá trị cho bool[]:

>>>

>>> x = "this is a truthy value"
>>> x is True
False
>>> bool[x] is True
True

>>> y = ""  # This is falsy
>>> y is False
False
>>> bool[y] is False
True

Lưu ý rằng việc so sánh trực tiếp Truehoặc Falsesử dụng một giá trị trung isthực không hoạt động. Bạn nên so sánh trực tiếp một giá trị với Truehoặc Falsechỉ khi bạn muốn biết liệu nó có thực sự là các giá trị Truehoặc hay không False.

Khi viết câu lệnh điều kiện dựa trên tính xác thực của một giá trị, bạn không nên so sánh trực tiếp với Truehoặc False. Bạn có thể dựa vào Python để kiểm tra độ tin cậy trong các điều kiện cho bạn:

>>>

>>> x = "this is a truthy value"
>>> if x is True:  # Don't do this
...     print["x is True"]
...
>>> if x:  # Do this
...     print["x is truthy"]
...
x is truthy

Trong Python, bạn thường không cần chuyển đổi các giá trị thành rõ ràng Truehoặc False. Python sẽ ngầm xác định độ tin cậy của giá trị cho bạn.

các Nonetừ khóa

Từ khóa Python Nonekhông đại diện cho giá trị. Trong các ngôn ngữ lập trình khác, Noneđược biểu diễn như nullnilnoneundef, hoặc undefined.

Nonecũng là giá trị mặc định được trả về bởi một hàm nếu nó không có returncâu lệnh :

>>>

>>> def func[]:
...     print["hello"]
...
>>> x = func[]
hello
>>> print[x]
None

Để đi sâu hơn về từ khóa Python rất quan trọng và hữu ích này, hãy xem Null trong Python: Hiểu đối tượng NoneType của Python .

Điều hành Từ khóa: andornotin,is

Một số từ khóa Python được sử dụng làm toán tử. Trong các ngôn ngữ lập trình khác, các nhà khai thác sử dụng biểu tượng như &|, và !. Các toán tử Python cho những điều này là tất cả các từ khóa:

Toán tửNhững ngôn ngữ khácTừ khóa Python
VÀ, ∧ && and
HOẶC, ∨ || or
KHÔNG, ¬ ! not
CHỨA, ∈   in
DANH TÍNH === is

Mã Python được thiết kế để dễ đọc. Đó là lý do tại sao nhiều toán tử sử dụng các ký hiệu trong các ngôn ngữ lập trình khác là các từ khóa trong Python.

các andtừ khóa

Từ khóa Python andđược sử dụng để xác định xem cả toán hạng bên trái và bên phải là đúng hay sai. Nếu cả hai toán hạng là true, thì kết quả sẽ là true. Nếu một cái là giả, thì kết quả sẽ là giả:

Lưu ý rằng kết quả của một andcâu lệnh sẽ không nhất thiết phải là Truehoặc False. Điều này là do hành vi kỳ quặc của and. Thay vì đánh giá các toán hạng theo giá trị Boolean của chúng, andchỉ cần trả về nếu nó là sai hoặc nếu không nó sẽ trả về . Kết quả của một andcâu lệnh có thể được chuyển tới bool[]để nhận được giá trị Truehoặc rõ ràng False, hoặc chúng có thể được sử dụng trong một ifcâu lệnh có điều kiện .

Nếu bạn muốn xác định một biểu thức tương tự như một andbiểu thức, nhưng không sử dụng andtừ khóa, thì bạn có thể sử dụng toán tử bậc ba trong Python:

left if not left else right

Câu lệnh trên sẽ tạo ra kết quả tương tự như left and right.

Bởi vì andtrả về toán hạng đầu tiên nếu nó là sai và nếu không trả về toán hạng cuối cùng, bạn cũng có thể sử dụng andtrong một phép gán:

Nếu y là sai, thì điều này sẽ dẫn đến xviệc được gán giá trị là y. Nếu không, xsẽ được gán giá trị của z. Tuy nhiên, điều này làm cho mã khó hiểu. Một sự thay thế dài dòng hơn và rõ ràng hơn sẽ là:

Đoạn mã này dài hơn, nhưng nó cho biết rõ ràng hơn những gì bạn đang cố gắng hoàn thành.

các ortừ khóa

orTừ khóa của Python được sử dụng để xác định xem ít nhất một trong các toán hạng là trung thực. Một orcâu lệnh trả về toán hạng đầu tiên nếu nó là true và nếu không thì trả về toán hạng thứ hai:

Cũng giống như andtừ khóa, orkhông chuyển đổi các toán hạng của nó thành các giá trị Boolean của chúng. Thay vào đó, nó dựa vào độ tin cậy của họ để xác định kết quả.

Nếu bạn muốn viết một cái gì đó giống như một orbiểu thức mà không cần sử dụng or, thì bạn có thể làm như vậy với một biểu thức bậc ba:

Biểu thức này sẽ tạo ra kết quả tương tự như left or right. Để tận dụng hành vi này, đôi khi bạn cũng sẽ thấy orđược sử dụng trong các bài tập. Điều này thường không được khuyến khích ủng hộ một nhiệm vụ rõ ràng hơn.

Để có cái nhìn sâu hơn orvà cách sử dụng nó, hãy xem Cách sử dụng Python hoặc Toán tử .

các nottừ khóa

notTừ khóa của Python được sử dụng để lấy giá trị Boolean đối lập của một biến:

>>>

>>> val = ""  # Truthiness value is `False`
>>> not val
True

>>> val = 5  # Truthiness value is `True`
>>> not val
False

Các nottừ khóa được sử dụng trong báo cáo có điều kiện hoặc biểu thức Boolean khác để lật ý nghĩa Boolean hoặc kết quả. Không giống như andvà ornotsẽ xác định giá trị Boolean rõ ràng, Truehoặc Falsevà sau đó trả về giá trị ngược lại.

Nếu bạn muốn nhận được cùng một hành vi mà không cần sử dụng not, thì bạn có thể làm như vậy với biểu thức bậc ba sau:

True if bool[] is False else False

Câu lệnh này sẽ trả về kết quả giống như not .

các intừ khóa

inTừ khóa của Python là một kiểm tra ngăn chặn mạnh mẽ, hoặc toán tử thành viên . Đưa ra một phần tử cần tìm và một vùng chứa hoặc chuỗi để tìm kiếm, insẽ trả về Truehoặc Falsecho biết liệu phần tử đó có được tìm thấy trong vùng chứa hay không:

Một ví dụ điển hình về việc sử dụng intừ khóa là kiểm tra một chữ cái cụ thể trong một chuỗi:

>>>

>>> name = "Chad"
>>> "c" in name
False
>>> "C" in name
True

Các incông trình từ khóa với tất cả các loại container: danh sách, dicts, bộ, dây, và bất cứ điều gì khác mà định nghĩa __contains__[]hoặc có thể được lặp lại.

các istừ khóa

isTừ khóa của Python là kiểm tra danh tính. Điều này khác với ==toán tử kiểm tra sự bình đẳng. Đôi khi hai thứ có thể được coi là bằng nhau nhưng không phải là cùng một đối tượng trong bộ nhớ. Các istừ khóa sẽ xác định xem hai đối tượng là chính xác cùng một đối tượng:

Điều này sẽ trả về Truenếu là cùng một đối tượng trong bộ nhớ , hoặc nếu không, nó sẽ trả về False.

Hầu hết thời gian bạn sẽ thấy isđược sử dụng để kiểm tra xem một đối tượng có None. Vì Nonelà một singleton, nên chỉ có một thể hiện của Nonenó có thể tồn tại, vì vậy tất cả các Nonegiá trị là cùng một đối tượng chính xác trong bộ nhớ.

Nếu những khái niệm này là mới đối với bạn, thì bạn có thể nhận được lời giải thích chuyên sâu hơn bằng cách xem Python '! =' Is Not 'is not': So sánh các đối tượng trong Python . Để tìm hiểu sâu hơn về cách ishoạt động, hãy xem các Toán tử và Biểu thức trong Python .
 

Flow Control Từ khóa: ifelif,else

Từ khóa ba Python được sử dụng để kiểm soát dòng chảy: ifelif, và else. Các từ khóa Python này cho phép bạn sử dụng logic có điều kiện và thực thi mã với các điều kiện nhất định. Những từ khóa này rất phổ biến — chúng sẽ được sử dụng trong hầu hết mọi chương trình bạn thấy hoặc viết bằng Python.

các iftừ khóa

Các iftừ khóa được sử dụng để bắt đầu một tuyên bố có điều kiện . Một ifcâu lệnh cho phép bạn viết một khối mã chỉ được thực thi nếu biểu thức sau iflà trung thực.

Cú pháp cho một ifcâu lệnh bắt đầu bằng từ khóa ifở đầu dòng, theo sau là một biểu thức hợp lệ sẽ được đánh giá cho giá trị trung thực của nó:

Câu iflệnh là một thành phần quan trọng của hầu hết các chương trình. Để biết thêm thông tin về ifcâu lệnh, hãy xem câu lệnh có điều kiện trong Python .

Một cách sử dụng khác của iftừ khóa là một phần của toán tử bậc ba của Python :

 =  if  else 

Đây là phiên bản một dòng của if...elsecâu lệnh dưới đây:

if :
     = 
else:
     = 

Nếu các biểu thức của bạn là các câu lệnh không phức tạp, thì việc sử dụng biểu thức bậc ba cung cấp một cách hay để đơn giản hóa mã của bạn một chút. Một khi các điều kiện trở nên phức tạp một chút, thường tốt hơn là dựa vào iftuyên bố tiêu chuẩn .

các eliftừ khóa

Câu eliflệnh trông và hoạt động giống như ifcâu lệnh, với hai điểm khác biệt chính:

  1. Việc sử dụng elifchỉ có giá trị sau một ifcâu lệnh hay câu lệnh khác elif.
  2. Bạn có thể sử dụng bao nhiêu elifcâu lệnh mà bạn cần.

Trong các ngôn ngữ lập trình khác, eliflà else if[hai từ riêng biệt] hoặc elseif[cả hai từ được trộn với nhau]. Khi bạn thấy elifbằng Python, hãy nghĩ else if:

if :
    
elif :
    
elif :
    

Python không có switchcâu lệnh . Một cách để có được chức năng tương tự mà các ngôn ngữ lập trình khác cung cấp với các switchcâu lệnh là sử dụng ifvà elif. Để biết các cách khác để sao chép switchcâu lệnh trong Python, hãy xem Mô phỏng câu lệnh switch / case trong Python .

các elsetừ khóa

Câu elselệnh, kết hợp với các từ khóa Python ifvà elif, biểu thị một khối mã chỉ nên được thực thi nếu các khối điều kiện khác ifvà eliftất cả đều là giả:

if :
    
else:
    

Lưu ý rằng elsecâu lệnh không sử dụng biểu thức điều kiện. Kiến thức về elifvà elsetừ khóa và cách sử dụng thích hợp của chúng là rất quan trọng đối với các lập trình viên Python. Cùng với đó if, chúng tạo nên một số thành phần được sử dụng thường xuyên nhất trong bất kỳ chương trình Python nào.

Lặp Từ khóa: forwhilebreakcontinue,else

Vòng lặp và lặp lại là những khái niệm lập trình cực kỳ quan trọng. Một số từ khóa Python được sử dụng để tạo và làm việc với các vòng lặp. Những từ khóa này, giống như các từ khóa Python được sử dụng cho các điều kiện ở trên, sẽ được sử dụng và nhìn thấy trong mọi chương trình Python mà bạn bắt gặp. Hiểu chúng và cách sử dụng phù hợp sẽ giúp bạn cải thiện với tư cách là một lập trình viên Python.

các fortừ khóa

Vòng lặp phổ biến nhất trong Python là forvòng lặp. Nó được xây dựng bằng cách kết hợp các từ khóa Python forvà được ingiải thích trước đó. Cú pháp cơ bản cho một forvòng lặp như sau:

for  in :
    

Một ví dụ phổ biến là lặp lại các số từ một đến năm và in chúng ra màn hình:

>>>

>>> for num in range[1, 6]:
...     print[num]
...
1
2
3
4
5

Trong các ngôn ngữ lập trình khác, cú pháp của một forvòng lặp sẽ khác một chút. Thông thường, bạn sẽ cần chỉ định biến, điều kiện để tiếp tục và cách tăng biến đó [ for [int i = 0; i < 5; i++]].

Trong Python, forvòng lặp giống như vòng lặp for-each trong các ngôn ngữ lập trình khác. Với đối tượng để lặp lại, nó sẽ gán giá trị của mỗi lần lặp cho biến:

>>>

>>> people = ["Kevin", "Creed", "Jim"]
>>> for person in people:
...     print[f"{person} was in The Office."]
...
Kevin was in The Office.
Creed was in The Office.
Jim was in The Office.

Trong ví dụ này, bạn bắt đầu với danh sách [vùng chứa] tên của mọi người. Các forvòng lặp bắt đầu với fortừ khóa vào đầu dòng, tiếp theo là biến để gán mỗi phần tử của danh sách, sau đó các intừ khóa, và cuối cùng là container [ people].

forVòng lặp của Python là một thành phần chính khác trong bất kỳ chương trình Python nào. Để tìm hiểu thêm về forvòng lặp, hãy xem Vòng lặp “for” trong Python [Lặp lại xác định] .

các whiletừ khóa

whileVòng lặp của Python sử dụng từ khóa whilevà hoạt động giống như một whilevòng lặp trong các ngôn ngữ lập trình khác. Miễn là điều kiện theo sau whiletừ khóa là đúng, khối theo sau whilecâu lệnh sẽ tiếp tục được thực thi lặp đi lặp lại:

while :
    

Lưu ý: Đối với ví dụ về vòng lặp vô hạn bên dưới, hãy chuẩn bị sử dụng Ctrl+C để dừng quá trình nếu bạn quyết định thử nó trên máy của riêng mình.

Cách dễ nhất để chỉ định một vòng lặp vô hạn trong Python là sử dụng whiletừ khóa với một biểu thức luôn trung thực:

>>>

>>> while True:
...     print["working..."]
...

Để biết thêm ví dụ về các vòng lặp vô hạn trong hoạt động, hãy xem Lập trình Socket trong Python [Hướng dẫn] . Để tìm hiểu thêm về whilecác vòng lặp, hãy xem Vòng lặp “while” trong Python [Lặp lại không giới hạn] .

các breaktừ khóa

Nếu bạn cần thoát khỏi một vòng lặp sớm, thì bạn có thể sử dụng breaktừ khóa. Từ khóa này sẽ hoạt động trong cả hai forvà whilelặp lại:

for  in :
    if :
        break

Ví dụ về việc sử dụng breaktừ khóa sẽ là nếu bạn đang tính tổng các số nguyên trong một danh sách các số và muốn thoát ra khi tổng số vượt quá một giá trị nhất định:

>>>

>>> nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sum = 0
>>> for num in nums:
...     sum += num
...     if sum > 10:
...         break
...
>>> sum
15

Cả từ khóa Python breakvà continueđều có thể là những công cụ hữu ích khi làm việc với các vòng lặp. Để thảo luận sâu hơn về cách sử dụng của chúng, hãy xem Vòng lặp “while” trong Python [Lặp lại không giới hạn] .

các continuetừ khóa

Python cũng có một continuetừ khóa cho khi bạn muốn bỏ qua lần lặp vòng lặp tiếp theo. Giống như trong hầu hết các ngôn ngữ lập trình khác, continuetừ khóa cho phép bạn ngừng thực hiện lặp lại vòng lặp hiện tại và chuyển sang lần lặp tiếp theo:

for  in :
    if :
        continue

Các continuetừ khóa cũng hoạt động trong whilevòng. Nếu continuetừ khóa đạt được trong một vòng lặp, thì quá trình lặp hiện tại sẽ bị dừng và lần lặp tiếp theo của vòng lặp được bắt đầu.

Các elsetừ khóa sử dụng Với Loops

Ngoài việc sử dụng elsetừ khóa với ifcâu lệnh điều kiện , bạn cũng có thể sử dụng nó như một phần của vòng lặp. Khi được sử dụng với vòng lặp, elsetừ khóa chỉ định mã sẽ được chạy nếu vòng lặp thoát bình thường, nghĩa breaklà không được gọi để thoát khỏi vòng lặp sớm.

Cú pháp để sử dụng elsevới một forvòng lặp trông giống như sau:

for  in :
    
else:
    

Điều này rất giống với việc sử dụng elsevới một ifcâu lệnh. Sử dụng elsevới một whilevòng lặp trông tương tự:

while :
    
else:
    

Tài liệu tiêu chuẩn Python có một phần về cách sử dụng breakvà elsevới một forvòng lặp mà bạn thực sự nên kiểm tra. Nó sử dụng một ví dụ tuyệt vời để minh họa tính hữu ích của elsekhối.

Nhiệm vụ mà nó thể hiện là lặp lại các số từ hai đến chín để tìm các số nguyên tố. Một cách bạn có thể làm điều này là với một forvòng lặp tiêu chuẩn với một biến cờ :

>>>

>>> for n in range[2, 10]:
...     prime = True
...     for x in range[2, n]:
...         if n % x == 0:
...             prime = False
...             print[f"{n} is not prime"]
...             break
...     if prime:
...         print[f"{n} is prime!"]
...
2 is prime!
3 is prime!
4 is not prime
5 is prime!
6 is not prime
7 is prime!
8 is not prime
9 is not prime

Bạn có thể sử dụng primecờ để chỉ ra cách thoát khỏi vòng lặp. Nếu nó thoát bình thường, thì primecờ vẫn còn True. Nếu nó thoát bằng break, thì primecờ sẽ được đặt thành False. Khi ở bên ngoài forvòng lặp bên trong , bạn có thể kiểm tra cờ để xác định xem primecó phải là Truesố nguyên tố hay không và nếu có, hãy in ra số đó là số nguyên tố.

Các elsekhối cung cấp cú pháp đơn giản hơn. Nếu bạn thấy mình phải đặt cờ trong vòng lặp, thì hãy xem ví dụ tiếp theo như một cách để có thể đơn giản hóa mã của bạn:

>>>

>>> for n in range[2, 10]:
...     for x in range[2, n]:
...         if n % x == 0:
...             print[f"{n} is not prime"]
...             break
...     else:
...         print[f"{n} is prime!"]
...
2 is prime!
3 is prime!
4 is not prime
5 is prime!
6 is not prime
7 is prime!
8 is not prime
9 is not prime

Điều duy nhất bạn cần làm để sử dụng elsekhối trong ví dụ này là xóa primecờ và thay thế ifcâu lệnh cuối cùng bằng elsekhối. Điều này kết thúc tạo ra kết quả giống như ví dụ trước, chỉ với mã rõ ràng hơn.

Đôi khi việc sử dụng một elsetừ khóa với một vòng lặp có vẻ hơi lạ, nhưng một khi bạn hiểu rằng nó cho phép bạn tránh sử dụng cờ trong các vòng lặp của mình, nó có thể là một công cụ mạnh mẽ.

Cấu trúc khóa: defclasswithaspass,lambda

Để xác định các hàm và lớp hoặc sử dụng trình quản lý ngữ cảnh , bạn sẽ cần sử dụng một trong các từ khóa Python trong phần này. Chúng là một phần thiết yếu của ngôn ngữ Python và hiểu khi nào sử dụng chúng sẽ giúp bạn trở thành một lập trình viên Python tốt hơn.

các deftừ khóa

Từ khóa của Python defđược sử dụng để định nghĩa một hàm hoặc phương thức của một lớp. Điều này tương đương với functiontrong JavaScript và PHP. Cú pháp cơ bản để xác định một hàm có defdạng như sau:

def []:
    

Các hàm và phương thức có thể là những cấu trúc rất hữu ích trong bất kỳ chương trình Python nào. Để tìm hiểu thêm về cách xác định chúng và tất cả thông tin chi tiết của chúng, hãy xem Định nghĩa hàm Python của riêng bạn .

các classtừ khóa

Để xác định một lớp trong Python, bạn sử dụng classtừ khóa. Cú pháp chung để xác định một lớp với classnhư sau:

class MyClass[]:
    

Các lớp là công cụ mạnh mẽ trong lập trình hướng đối tượng, và bạn nên biết về chúng cũng như cách định nghĩa chúng. Để tìm hiểu thêm, hãy xem Lập trình hướng đối tượng [OOP] trong Python 3 .

các withtừ khóa

Trình quản lý ngữ cảnh là một cấu trúc thực sự hữu ích trong Python. Mỗi trình quản lý ngữ cảnh thực thi mã cụ thể trước và sau các câu lệnh bạn chỉ định. Để sử dụng một, bạn sử dụng withtừ khóa:

with  as :
    

Việc sử dụng withcung cấp cho bạn một cách để xác định mã được thực thi trong phạm vi của trình quản lý ngữ cảnh . Ví dụ cơ bản nhất về điều này là khi bạn đang làm việc với I / O tệp bằng Python.

Nếu bạn muốn mở một tệp , hãy làm điều gì đó với tệp đó, sau đó đảm bảo rằng tệp đã được đóng đúng cách, sau đó bạn sẽ sử dụng trình quản lý ngữ cảnh. Hãy xem xét ví dụ này, trong đó names.txtcó một danh sách các tên, một tên trên mỗi dòng:

>>>

>>> with open["names.txt"] as input_file:
...    for name in input_file:
...        print[name.strip[]]
...
Jim
Pam
Cece
Philip

Trình quản lý ngữ cảnh I / O tệp được cung cấp open[]và khởi tạo bằng withtừ khóa sẽ mở tệp để đọc, gán con trỏ tệp đang mở input_file, sau đó thực thi bất kỳ mã nào bạn chỉ định trong withkhối. Sau đó, sau khi khối được thực thi, con trỏ tệp sẽ đóng lại. Ngay cả khi mã của bạn trong withkhối tạo ra một ngoại lệ, con trỏ tệp vẫn sẽ đóng.

Để có một ví dụ tuyệt vời về việc sử dụng withvà trình quản lý ngữ cảnh, hãy xem Chức năng bộ hẹn giờ của Python: Ba cách để theo dõi mã của bạn .

Các astừ khóa được sử dụng vớiwith

Nếu bạn muốn truy cập vào kết quả của biểu thức hoặc trình quản lý ngữ cảnh được chuyển đến with, bạn sẽ cần sử dụng bí danh đó as. Bạn cũng có thể đã từng thấy các asnhập khẩu và ngoại lệ bí danh, và điều này cũng không khác. Bí danh có sẵn trong withkhối:

with  as :
    

Hầu hết thời gian, bạn sẽ thấy hai từ khóa Python này withvà asđược sử dụng cùng nhau.

các passtừ khóa

Vì Python không có các chỉ báo khối để chỉ định phần cuối của một khối, nên passtừ khóa được sử dụng để chỉ định rằng khối được cố ý để trống. Nó tương đương với một thao tác không chọn , hoặc không . Dưới đây là một vài ví dụ về việc sử dụng passđể chỉ định rằng khối trống:

def my_function[]:
    pass

class MyClass:
    pass

if True:
    pass

Để biết thêm chi tiết pass, hãy xem Tuyên bố vượt qua: Cách không làm gì bằng Python .

các lambdatừ khóa

Các lambdatừ khóa được sử dụng để xác định một chức năng mà không có một tên và chỉ có một tuyên bố, kết quả trong số đó được trả lại. Các hàm được định nghĩa với lambdađược gọi là các hàm lambda :

lambda : 

Một ví dụ cơ bản về một lambdahàm tính toán đối số được nâng lên thành lũy thừa 10sẽ như sau:

Điều này tương đương với việc xác định một hàm với def:

Một cách sử dụng phổ biến cho một lambdahàm là chỉ định một hành vi khác cho một hàm khác. Ví dụ, hãy tưởng tượng bạn muốn sắp xếp một danh sách các chuỗi theo các giá trị nguyên của chúng. Hành vi mặc định của sorted[]sẽ sắp xếp các chuỗi theo thứ tự bảng chữ cái. Nhưng với sorted[], bạn có thể chỉ định khóa nào mà danh sách sẽ được sắp xếp.

Một hàm lambda cung cấp một cách hay để làm như vậy:

>>>

>>> ids = ["id1", "id2", "id30", "id3", "id20", "id10"]
>>> sorted[ids]
['id1', 'id10', 'id2', 'id20', 'id3', 'id30']

>>> sorted[ids, key=lambda x: int[x[2:]]]
['id1', 'id2', 'id3', 'id10', 'id20', 'id30']

Ví dụ này sắp xếp danh sách không dựa trên thứ tự bảng chữ cái mà dựa trên thứ tự số của các ký tự cuối cùng của chuỗi sau khi chuyển đổi chúng thành số nguyên. Nếu không lambda, bạn sẽ phải xác định một hàm, đặt tên cho nó, và sau đó chuyển nó vào sorted[]lambdađã làm cho mã này sạch hơn.

Để so sánh, đây là ví dụ trên sẽ trông như thế nào nếu không sử dụng lambda:

>>>

>>> def sort_by_int[x]:
...     return int[x[2:]]
...
>>> ids = ["id1", "id2", "id30", "id3", "id20", "id10"]
>>> sorted[ids, key=sort_by_int]
['id1', 'id2', 'id3', 'id10', 'id20', 'id30']

Đoạn mã này tạo ra kết quả giống như lambdaví dụ, nhưng bạn cần xác định hàm trước khi sử dụng nó.

Để biết thêm thông tin về lambda, hãy xem Cách sử dụng các hàm Lambda trong Python .

Trở Từ khóa: return,yield

Có hai từ khóa Python được sử dụng để chỉ định những gì được trả về từ các hàm hoặc phương thức: returnvà yield. Hiểu khi nào và ở đâu để sử dụng returnlà rất quan trọng để trở thành một lập trình viên Python tốt hơn. Các yieldtừ khóa là một tính năng tiên tiến hơn của Python, nhưng nó cũng có thể là một công cụ hữu ích để hiểu.

các returntừ khóa

returnTừ khóa của Python chỉ hợp lệ như một phần của hàm được định nghĩa với def. Khi Python gặp từ khóa này, nó sẽ thoát khỏi hàm tại thời điểm đó và trả về kết quả của bất kỳ thứ gì xuất hiện sau returntừ khóa:

def []:
    return 

Khi không có biểu thức nào, returnsẽ trả về Nonetheo mặc định:

>>>

>>> def return_none[]:
...     return
...
>>> return_none[]
>>> r = return_none[]
>>> print[r]
None

Tuy nhiên, hầu hết thời gian, bạn muốn trả về kết quả của một biểu thức hoặc một giá trị cụ thể:

>>>

>>> def plus_1[num]:
...    return num + 1
...
>>> plus_1[9]
10
>>> r = plus_1[9]
>>> print[r]
10

Bạn thậm chí có thể sử dụng returntừ khóa nhiều lần trong một hàm. Điều này cho phép bạn có nhiều điểm thoát trong chức năng của mình. Một ví dụ cổ điển về trường hợp bạn muốn có nhiều câu lệnh trả về là giải pháp đệ quy sau để tính giai thừa :

def factorial[n]:
    if n == 1:
        return 1
    else:
        return n * factorial[n - 1]

Trong hàm giai thừa ở trên, có hai trường hợp mà bạn muốn trả về từ hàm. Đầu tiên là trường hợp cơ sở, khi là số 1, và thứ hai là trường hợp thông thường, khi bạn muốn nhân số hiện tại với giá trị giai thừa của số tiếp theo.

Để tìm hiểu thêm về returntừ khóa, hãy xem Định nghĩa hàm Python của riêng bạn .

các yieldtừ khóa

yieldTừ khóa của Python giống như returntừ khóa ở chỗ nó chỉ định những gì được trả về từ một hàm. Tuy nhiên, khi một hàm có một yieldcâu lệnh, thứ được trả về là một trình tạo . Sau đó, trình tạo có thể được chuyển đến tích hợp sẵn của Python next[]để nhận giá trị tiếp theo được trả về từ hàm.

Khi bạn gọi một hàm với các yieldcâu lệnh, Python sẽ thực thi hàm cho đến khi nó đến yieldtừ khóa đầu tiên và sau đó trả về một trình tạo. Chúng được gọi là các chức năng của máy phát:

def []:
    yield 

Ví dụ đơn giản nhất về điều này sẽ là một hàm trình tạo trả về cùng một bộ giá trị:

>>>

>>> def family[]:
...     yield "Pam"
...     yield "Jim"
...     yield "Cece"
...     yield "Philip"
...
>>> names = family[]
>>> names

>>> next[names]
'Pam'
>>> next[names]
'Jim'
>>> next[names]
'Cece'
>>> next[names]
'Philip'
>>> next[names]
Traceback [most recent call last]:
  File "", line 1, in 
StopIteration

Khi StopIterationngoại lệ được nâng lên, trình tạo được thực hiện trả lại các giá trị. Để xem lại tên, bạn cần phải gọi family[]lại và nhận một máy phát điện mới. Hầu hết thời gian, một hàm trình tạo sẽ được gọi như một phần của forvòng lặp, hàm này thực hiện các next[]lệnh gọi cho bạn.

Để biết thêm thông tin về yieldtừ khóa và cách sử dụng trình tạo và chức năng của trình tạo, hãy xem Cách sử dụng Trình tạo và năng suất trong Python và Trình tạo Python 101 .

Nhập từ khóa: importfrom,as

Đối với những công cụ, không giống như các từ khóa Python và các công cụ tích hợp, chưa có sẵn cho chương trình Python của bạn, bạn sẽ cần nhập chúng vào chương trình của mình. Có rất nhiều mô-đun hữu ích có sẵn trong thư viện tiêu chuẩn của Python mà chỉ cần nhập khẩu. Ngoài ra còn có nhiều thư viện và công cụ hữu ích khác có sẵn trong PyPI mà khi bạn đã cài đặt chúng vào môi trường của mình, bạn sẽ cần phải nhập vào các chương trình của mình.

Sau đây là mô tả ngắn gọn về ba từ khóa Python được sử dụng để nhập các mô-đun vào chương trình của bạn. Để biết thêm thông tin về các từ khóa này, hãy xem Các gói và Mô-đun Python - Giới thiệu và nhập Python: Kỹ thuật và Mẹo nâng cao .

các importtừ khóa

importTừ khóa của Python được sử dụng để nhập hoặc bao gồm, một mô-đun để sử dụng trong chương trình Python của bạn. Cú pháp sử dụng cơ bản trông giống như sau:

Sau khi câu lệnh đó chạy, sẽ có sẵn cho chương trình của bạn.

Ví dụ: nếu bạn muốn sử dụng Counterlớp từ collectionsmô-đun trong thư viện chuẩn, thì bạn có thể sử dụng mã sau:

>>>

>>> import collections
>>> collections.Counter[]
Counter[]

Nhập collectionstheo cách này làm cho toàn bộ collectionsmô-đun, bao gồm cả Counterlớp, có sẵn cho chương trình của bạn. Bằng cách sử dụng tên mô-đun, bạn có quyền truy cập vào tất cả các công cụ có sẵn trong mô-đun đó. Để có được quyền truy cập vào Counter, bạn tham khảo nó từ các mô-đun: collections.Counter.

các fromtừ khóa

Các fromtừ khóa được sử dụng cùng với importnhập khẩu một cái gì đó cụ thể từ một mô-đun:

from  import 

Thao tác này sẽ nhập bất cứ thứ gì bên trong để sử dụng bên trong chương trình của bạn. Hai từ khóa Python này fromvà importđược sử dụng cùng nhau.

Nếu bạn muốn sử dụng Countertừ collectionsmô-đun trong thư viện chuẩn, thì bạn có thể nhập nó cụ thể:

>>>

>>> from collections import Counter
>>> Counter[]
Counter[]

Việc nhập Counternhư vậy làm cho Counterlớp có sẵn, nhưng không có gì khác từ collectionsmô-đun có sẵn. Counterhiện có sẵn mà bạn không cần phải tham chiếu nó từ collectionsmô-đun.

các astừ khóa

Các astừ khóa được sử dụng để bí danh một module hoặc công cụ nhập khẩu. Nó được sử dụng cùng với các từ khóa Python importvà fromđể thay đổi tên của thứ đang được nhập:

import  as 
from  import  as 

Đối với các mô-đun có tên thực sự dài hoặc bí danh nhập thường được sử dụng, ascó thể hữu ích trong việc tạo bí danh.

Nếu bạn muốn nhập Counterlớp từ mô-đun bộ sưu tập nhưng đặt tên khác, bạn có thể đặt bí danh cho lớp đó bằng cách sử dụng as:

>>>

>>> from collections import Counter as C
>>> C[]
Counter[]

Bây giờ Countercó sẵn để được sử dụng trong chương trình của bạn, nhưng Cthay vào đó , nó được tham chiếu bởi . Cách sử dụng asbí danh nhập phổ biến hơn là với các gói NumPy hoặc Pandas . Chúng thường được nhập với các bí danh tiêu chuẩn:

import numpy as np
import pandas as pd

Đây là một giải pháp thay thế tốt hơn để chỉ nhập mọi thứ từ một mô-đun và nó cho phép bạn rút ngắn tên của mô-đun đang được nhập.

Ngoại lệ-Xử lý Từ khóa: tryexceptraisefinallyelse,assert

Một trong những khía cạnh phổ biến nhất của bất kỳ chương trình Python nào là nâng cao và bắt các ngoại lệ. Bởi vì đây là một khía cạnh cơ bản của tất cả mã Python, nên có một số từ khóa Python có sẵn để giúp làm cho phần này của mã của bạn rõ ràng và ngắn gọn.

Các phần bên dưới đề cập đến các từ khóa Python này và cách sử dụng cơ bản của chúng. Để có hướng dẫn chuyên sâu hơn về các từ khóa này, hãy xem Python Exceptions: An Introduction .

các trytừ khóa

Bất kỳ khối xử lý ngoại lệ nào đều bắt đầu bằng trytừ khóa của Python . Điều này cũng giống như trong hầu hết các ngôn ngữ lập trình khác có xử lý ngoại lệ.

Mã trong trykhối là mã có thể tạo ra một ngoại lệ. Một số từ khóa Python khác được liên kết với tryvà được sử dụng để xác định những gì nên làm nếu các ngoại lệ khác nhau được nêu ra hoặc trong các tình huống khác nhau. Đây là exceptelsevà finally:

try:
    
:
    

Một trykhối không hợp lệ trừ khi nó có ít nhất một trong các từ khóa Python khác được sử dụng để xử lý ngoại lệ như một phần của trycâu lệnh tổng thể .

Nếu bạn muốn tính toán và trả lại dặm một gallon xăng [ mpg] trao dặm lái xe và gallon khí sử dụng, sau đó bạn có thể viết một hàm như sau:

def mpg[miles, gallons]:
    return miles / gallons

Vấn đề đầu tiên bạn có thể thấy là mã của bạn có thể tăng a ZeroDivisionErrornếu gallonstham số được chuyển vào dưới dạng 0. Các trytừ khóa cho phép bạn chỉnh sửa các mã trên để xử lý tình huống đó một cách thích hợp:

def mpg[miles, gallons]:
    try:
        mpg = miles / gallons
    except ZeroDivisionError:
        mpg = None
    return mpg

Bây giờ nếu gallons = 0, sau đó mpg[]sẽ không đưa ra một ngoại lệ và Nonethay vào đó sẽ trả về . Điều này có thể tốt hơn hoặc bạn có thể quyết định rằng bạn muốn nêu ra một loại ngoại lệ khác hoặc xử lý tình huống này theo cách khác. Bạn sẽ thấy phiên bản mở rộng của ví dụ này bên dưới để minh họa các từ khóa khác được sử dụng để xử lý ngoại lệ.

các excepttừ khóa

exceptTừ khóa của Python được sử dụng với tryđể xác định phải làm gì khi các ngoại lệ cụ thể được đưa ra. Bạn có thể có một hoặc nhiều exceptkhối với một khối duy nhất try. Cách sử dụng cơ bản trông như thế này:

try:
    
except :
    

Lấy mpg[]ví dụ từ trước, bạn cũng có thể làm điều gì đó cụ thể trong trường hợp ai đó chuyển các loại không hoạt động với /toán tử. Đã xác định mpg[]trong ví dụ trước, bây giờ hãy thử gọi nó bằng chuỗi thay vì số:

>>>

>>> mpg["lots", "many"]
Traceback [most recent call last]:
  File "", line 1, in 
  File "", line 3, in mpg
TypeError: unsupported operand type[s] for /: 'str' and 'str'

Bạn cũng có thể sửa đổi mpg[]và sử dụng nhiều exceptkhối để xử lý tình huống này:

def mpg[miles, gallons]:
    try:
        mpg = miles / gallons
    except ZeroDivisionError:
        mpg = None
    except TypeError as ex:
        print["you need to provide numbers"]
        raise ex
    return mpg

Tại đây, bạn sửa đổi mpg[]để tăng TypeErrorngoại lệ chỉ sau khi bạn đã in lời nhắc hữu ích ra màn hình.

Lưu ý rằng excepttừ khóa cũng có thể được sử dụng cùng với astừ khóa. Điều này có tác dụng tương tự như các cách sử dụng khác as, tạo bí danh cho ngoại lệ được nêu ra để bạn có thể làm việc với nó trong exceptkhối.

Mặc dù nó được cho phép về mặt cú pháp, hãy cố gắng không sử dụng các exceptcâu lệnh làm thông tin ngầm. Tốt hơn bạn nên luôn nắm bắt một cách rõ ràng điều gì đó , ngay cả khi nó chỉ là Exception:

try:
    1 / 0
except:  # Don't do this
    pass

try:
    1 / 0
except Exception:  # This is better
    pass

try:
    1 / 0
except ZeroDivisionError:  # This is best
    pass

Nếu bạn thực sự muốn nắm bắt một loạt các trường hợp ngoại lệ, hãy chỉ định cấp độ gốc Exception. Đây rõ ràng hơn là một catchall và nó cũng sẽ không bắt được các trường hợp ngoại lệ mà bạn có thể không muốn bắt, như RuntimeErrorhoặc KeyboardInterrupt.

các raisetừ khóa

Các raisetừ khóa đặt ra một ngoại lệ. Nếu bạn thấy mình cần phải nêu ra một ngoại lệ, thì bạn có thể sử dụng raisetheo sau là ngoại lệ sẽ được nêu ra:

Bạn đã sử dụng raisetrước đây, trong mpg[]ví dụ. Khi bạn bắt được TypeError, bạn tăng lại ngoại lệ sau khi in thông báo ra màn hình.

các finallytừ khóa

Python của finallytừ khóa là hữu ích để xác định mã mà nên chạy không có vấn đề gì xảy ra trong tryexcepthoặc elsekhối. Để sử dụng finally, hãy sử dụng nó như một phần của trykhối và chỉ định các câu lệnh sẽ được chạy bất kể điều gì:

try:
    
finally:
    

Sử dụng ví dụ trước đó, có thể hữu ích khi chỉ định rằng, bất kể điều gì xảy ra, bạn muốn biết hàm được gọi với đối số nào. Bạn có thể sửa đổi mpg[]để bao gồm một finallykhối thực hiện điều đó:

def mpg[miles, gallons]:
    try:
        mpg = miles / gallons
    except ZeroDivisionError:
        mpg = None
    except TypeError as ex:
        print["you need to provide numbers"]
        raise ex
    finally:
        print[f"mpg[{miles}, {gallons}]"]
    return mpg

Bây giờ, bất kể mpg[]được gọi như thế nào hoặc kết quả là gì, bạn in các đối số do người dùng cung cấp:

>>>

>>> mpg[10, 1]
mpg[10, 1]
10.0

>>> mpg["lots", "many"]
you need to provide numbers
mpg[lots, many]
Traceback [most recent call last]:
  File "", line 1, in 
  File "", line 8, in mpg
  File "", line 3, in mpg
TypeError: unsupported operand type[s] for /: 'str' and 'str'

Các finallytừ khóa có thể là một phần rất hữu ích của mã ngoại lệ xử lý của bạn.

Các elsetừ khóa được sử dụng với tryexcept

Bạn đã biết rằng elsetừ khóa có thể được sử dụng với cả iftừ khóa và vòng lặp trong Python, nhưng nó có một công dụng khác. Nó có thể được kết hợp với các từ khóa tryvà exceptPython. Bạn chỉ có thể sử dụng elsetheo cách này nếu bạn cũng sử dụng ít nhất một exceptkhối:

try:
    
except :
    
else:
    

Trong bối cảnh này, mã trong elsekhối chỉ được thực thi nếu một ngoại lệ không được đưa ra trong trykhối. Nói cách khác, nếu trykhối thực thi tất cả mã thành công, thì elsemã khối sẽ được thực thi.

Trong mpg[]ví dụ này, hãy tưởng tượng bạn muốn đảm bảo rằng mpgkết quả luôn được trả về floatbất kể tổ hợp số nào được chuyển vào. Một trong những cách bạn có thể làm là sử dụng một elsekhối. Nếu trytính toán khối mpgthành công, thì bạn chuyển đổi kết quả thành a floattrong elsekhối trước khi trả về:

def mpg[miles, gallons]:
    try:
        mpg = miles / gallons
    except ZeroDivisionError:
        mpg = None
    except TypeError as ex:
        print["you need to provide numbers"]
        raise ex
    else:
        mpg = float[mpg] if mpg is not None else mpg
    finally:
        print[f"mpg[{miles}, {gallons}]"]
    return mpg

Bây giờ, kết quả của một cuộc gọi tới mpg[], nếu thành công, sẽ luôn là a float.

Để biết thêm về cách sử dụng elsekhối như một phần của khối tryvà except, hãy xem Ngoại lệ Python: Giới thiệu .

các asserttừ khóa

Các asserttừ khóa trong Python được sử dụng để xác định một asserttuyên bố, hoặc một sự khẳng định về một biểu thức. Một assertcâu lệnh sẽ dẫn đến kết quả là no-op nếu biểu thức [ ] là true và nó sẽ nâng lên AssertionErrornếu biểu thức là sai. Để xác định một khẳng định, hãy sử dụng assertbiểu thức theo sau:

Nói chung, các assertcâu lệnh sẽ được sử dụng để đảm bảo điều gì đó cần phải đúng. Tuy nhiên, bạn không nên dựa vào chúng vì chúng có thể bị bỏ qua tùy thuộc vào cách chương trình Python của bạn được thực thi.

Lập trình Từ khóa không đồng bộ: async,await

Lập trình không đồng bộ là một chủ đề phức tạp. Có hai từ khóa Python được xác định để giúp làm cho mã không đồng bộ dễ đọc hơn và sạch hơn: asyncvà await.

Các phần bên dưới giới thiệu hai từ khóa không đồng bộ và cú pháp cơ bản của chúng, nhưng chúng sẽ không đi sâu vào lập trình không đồng bộ. Để tìm hiểu thêm về lập trình không đồng bộ, hãy xem Async IO trong Python: Hướng dẫn hoàn chỉnh và bắt đầu với các tính năng không đồng bộ trong Python .

các asynctừ khóa

Các asynctừ khóa được sử dụng với defxác định một chức năng không đồng bộ, hoặc coroutine . Cú pháp cũng giống như định nghĩa một hàm, với việc thêm asyncvào ở đầu:

async def []:
    

Bạn có thể làm cho một hàm không đồng bộ bằng cách thêm asynctừ khóa vào trước định nghĩa thông thường của hàm.

các awaittừ khóa

awaitTừ khóa của Python được sử dụng trong các hàm không đồng bộ để chỉ định một điểm trong hàm nơi điều khiển được đưa trở lại vòng lặp sự kiện để các hàm khác chạy. Bạn có thể sử dụng nó bằng cách đặt awaittừ khóa trước lệnh gọi đến bất kỳ asynchàm nào :

await 
# OR
 = await 

Khi sử dụng await, bạn có thể gọi hàm không đồng bộ và bỏ qua kết quả hoặc bạn có thể lưu trữ kết quả trong một biến khi hàm cuối cùng trả về.

Biến Xử Từ khóa: delglobal,nonlocal

Ba từ khóa Python được sử dụng để làm việc với các biến. Các deltừ khóa được nhiều thường được sử dụng hơn globalvà nonlocaltừ khóa. Nhưng vẫn hữu ích nếu biết và hiểu cả ba từ khóa để bạn có thể xác định thời điểm và cách sử dụng chúng.

các deltừ khóa

delđược sử dụng trong Python để bỏ đặt một biến hoặc tên. Bạn có thể sử dụng nó trên tên biến, nhưng cách sử dụng phổ biến hơn là xóa chỉ mục khỏi danh sách hoặc từ điển . Để bỏ đặt một biến, hãy sử dụng deltheo sau là biến bạn muốn bỏ đặt:

Giả sử bạn muốn xóa từ điển mà bạn nhận được từ phản hồi API bằng cách ném ra các khóa mà bạn biết rằng mình sẽ không sử dụng. Bạn có thể làm như vậy với deltừ khóa:

>>>

>>> del response["headers"]
>>> del response["errors"]

Thao tác này sẽ xóa các khóa "headers"và "errors"khỏi từ điển response.

các globaltừ khóa

Nếu bạn cần sửa đổi một biến không được xác định trong một hàm nhưng được xác định trong phạm vi toàn cục , thì bạn sẽ cần sử dụng globaltừ khóa. Điều này hoạt động bằng cách chỉ định trong hàm những biến nào cần được kéo vào hàm từ phạm vi toàn cục:

Một ví dụ cơ bản là tăng một biến toàn cục bằng một lệnh gọi hàm. Bạn có thể làm điều đó với globaltừ khóa:

>>>

>>> x = 0
>>> def inc[]:
...     global x
...     x += 1
...
>>> inc[]
>>> x
1
>>> inc[]
>>> x
2

Điều này thường không được coi là thực hành tốt, nhưng nó có những công dụng của nó. Để tìm hiểu thêm về globaltừ khóa, hãy xem Phạm vi Python & Quy tắc LEGB: Giải quyết tên trong mã của bạn .

các nonlocaltừ khóa

Các nonlocaltừ khóa tương tự như globalở chỗ nó cho phép bạn chỉnh sửa các biến từ một phạm vi khác nhau. Với global, phạm vi bạn đang lấy là phạm vi toàn cầu. Với nonlocal, phạm vi bạn đang lấy là phạm vi mẹ . Cú pháp tương tự như global:

Từ khóa này không được sử dụng thường xuyên, nhưng đôi khi nó có thể hữu ích. Để biết thêm về phạm vi và nonlocaltừ khóa, hãy xem Phạm vi Python & Quy tắc LEGB: Giải quyết tên trong mã của bạn .

Từ khóa Python không được dùng nữa

Đôi khi một từ khóa Python trở thành một hàm dựng sẵn. Đó là trường hợp của cả hai printvà exec. Đây từng là các từ khóa Python trong phiên bản 2.7, nhưng sau đó chúng đã được thay đổi thành các hàm tích hợp.

printTừ khóa cũ

Khi đó printlà một từ khóa, cú pháp để in một thứ gì đó ra màn hình trông như sau:

Lưu ý rằng nó trông giống như rất nhiều câu lệnh từ khóa khác, với từ khóa theo sau là các đối số.

Giờ đây printkhông còn là một từ khóa nữa và việc in ấn được thực hiện với cài đặt sẵn print[]. Để in thứ gì đó ra màn hình, bây giờ bạn sử dụng cú pháp sau:

Để biết thêm về cách in, hãy xem Hướng dẫn của bạn về Hàm print [] trong Python .

execTừ khóa cũ

Trong Python 2.7, exectừ khóa lấy mã Python làm chuỗi và thực thi nó. Điều này được thực hiện với cú pháp sau:

Bạn có thể có được hành vi tương tự trong Python 3+, chỉ với phần mềm tích hợp sẵn exec[]. Ví dụ: nếu bạn muốn thực thi "x = 12 * 7"trong mã Python của mình, thì bạn có thể làm như sau:

>>>

>>> exec["x = 12 * 7"]
>>> x == 84
True

Để biết thêm về exec[]và sử dụng nó, hãy xem Cách chạy Tập lệnh Python của bạn .

Phần kết luận

Từ khóa Python là nền tảng cơ bản của bất kỳ chương trình Python nào. Hiểu cách sử dụng hợp lý của chúng là chìa khóa để cải thiện kỹ năng và kiến ​​thức của bạn về Python.

Trong suốt bài viết này, bạn đã thấy một số điều để củng cố sự hiểu biết của bạn về các từ khóa Python và giúp bạn viết mã hiệu quả và dễ đọc hơn.

Trong bài viết này, bạn đã học được:

  • Các từ khóa Python trong phiên bản 3.8 và cách sử dụng cơ bản của chúng
  • Một số tài nguyên để giúp bạn hiểu sâu hơn về nhiều từ khóa
  • Cách sử dụng keywordsmô-đun của Python để làm việc với các từ khóa theo cách lập trình

Nếu bạn hiểu hầu hết các từ khóa này và cảm thấy thoải mái khi sử dụng chúng, thì bạn có thể muốn tìm hiểu thêm về ngữ pháp Python và cách các câu lệnh sử dụng các từ khóa này được chỉ định và xây dựng.

Các khóa học qua video:
Lập trình C Java C# SQL Server PHP HTML5-CSS3-JavaScript
« Prev: Python: Cách xây dựng một ứng dụng GUI Python với wxPython
» Next: Python: Các kiểu dữ liệu cơ bản trong Python

Bài Viết Liên Quan

Chủ Đề