Trình bày về cú pháp Python cơ bản
Trong bài viết này, tôi sẽ giới thiệu tổng quan về cú pháp cơ bản trong lập trình Python. Mục tiêu của bài viết là giúp bạn làm quen với các khái niệm và thuật ngữ được sử dụng trong Python, từ đó bạn có thể nhận biết sự tương đồng và khác biệt với một số ngôn ngữ lập trình khác.
Contents
- 1 Đặt tên (identifier) trong Python
- 2 Dòng lệnh và độ thụt trong Python
- 3 Lệnh trên nhiều dòng trong Python
- 4 Trích dẫn trong Python
- 5 Comment trong Python
- 6 Sử dụng dòng trống trong lập trình Python
- 7 Lệnh đa dòng trên một dòng
- 8 Nhóm lệnh đa dòng (suite) trong lập trình Python
- 9 Tham số dòng lệnh trong lập trình Python
Đặt tên (identifier) trong Python
Một định danh (identifier) trong Python là một tên được sử dụng để định danh biến, hàm, lớp hoặc đối tượng. Một định danh bắt đầu bằng một chữ cái từ A đến Z hoặc từ a đến z hoặc một dấu gạch dưới (_) và được theo sau bởi 0 hoặc nhiều ký tự, dấu gạch dưới hoặc chữ số (từ 0 đến 9).
Python không hỗ trợ các ký tự đặc biệt như @, $ và % trong các định danh. Python là một ngôn ngữ lập trình phân biệt chữ hoa và chữ thường, do đó định danh UCODE và ucode là hai định danh hoàn toàn khác nhau trong lập trình Python. Dưới đây là một số qui tắc nên được sử dụng khi đặt tên các định danh:
-
Tên có thể là một chuỗi ký tự hoặc một dãy số bắt đầu bằng ký tự hoặc dấu gạch dưới.
-
Không được phép sử dụng ký tự đặc biệt để đặt tên (ngoại trừ dấu gạch dưới). Ký tự đầu tiên có thể là chữ cái hoặc dấu gạch dưới, nhưng không được sử dụng chữ số làm ký tự đầu tiên.
-
Tên lớp bắt đầu bằng một chữ cái hoa, trong khi tất cả các tên khác bắt đầu bằng một chữ cái thường.
-
Một tên bắt đầu với một dấu gạch dưới đơn chỉ ra rằng tên (định danh) đó là private. Bắt đầu một định danh với hai dấu gạch dưới chỉ rằng định danh đó là private thực sự. Nếu định danh cũng kết thúc với hai dấu gạch dưới, thì định danh này là một tên đặc biệt được định nghĩa bởi ngôn ngữ (ví dụ như
__init__
).
Các từ khóa trong Python
Dưới đây là bảng các từ khóa trong ngôn ngữ lập trình Python. Đây là các từ dành riêng và bạn không thể sử dụng chúng như là hằng, biến hoặc bất kỳ tên định danh nào. Tất cả các từ khóa trong lập trình Python đều ở dạng chữ thường.
Dòng lệnh và độ thụt trong Python
Python không sử dụng dấu ngoặc nhọn ({}) để chỉ các khối mã trong định nghĩa lớp, hàm hoặc điều khiển luồng. Thay vào đó, khối mã được phân biệt bằng cách sử dụng độ thụt dòng mã (indentation), và điều này là bắt buộc.
Số khoảng trắng trong độ thụt dòng có thể thay đổi, nhưng tất cả các lệnh bên trong khối phải có cùng một số lượng khoảng trống. Ví dụ:
if True:
print("True")
else:
print("False")
Tuy nhiên, trong trường hợp sau, một lỗi sẽ xảy ra:
if True:
print("Answer")
print("True")
else:
print("Answer")
print("False")
Do đó, trong lập trình Python, tất cả các dòng liên tiếp mà được thụt đầu dòng với cùng một số lượng khoảng trống sẽ tạo thành một khối. Dưới đây là một ví dụ về các khối mã đa dạng:
# Lưu ý: Bạn không cần hiểu vấn đề này ngay lập tức, chỉ cần hiểu các khối mã khác nhau ngay cả khi chúng không có dấu ngoặc nhọn. Điều này là điểm khác biệt giữa Python và các ngôn ngữ khác.
import sys
try:
# Mở file
file = open(file_name, "w")
except IOError:
print("Có lỗi khi ghi file", file_name)
sys.exit()
print("Nhập '", file_finish, "' khi hoàn thành")
while file_text != file_finish:
file_text = raw_input("Nhập văn bản: ")
if file_text == file_finish:
# Đóng file
file.close()
break
file.write(file_text)
file.write("n")
file.close()
file_name = raw_input("Nhập tên file: ")
if len(file_name) == 0:
print("Xin hãy nhập tên file lần sau")
sys.exit()
try:
file = open(file_name, "r")
except IOError:
print("Có lỗi khi đọc file")
sys.exit()
file_text = file.read()
file.close()
print(file_text)
Lệnh trên nhiều dòng trong Python
Các lệnh trong Python kết thúc bằng một dòng mới. Tuy nhiên, Python cho phép sử dụng ký tự để chỉ rõ sự liên tục của dòng. Ví dụ:
total = item_one +
item_two +
item_three
Các lệnh được chứa bên trong dấu [ ], { }, hoặc ( ) không cần sử dụng ký tự . Ví dụ:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
Trích dẫn trong Python
Python chấp nhận trích dẫn đơn (‘), đôi (“), và tam (”’ hoặc “””) để biểu thị các chuỗi, miễn là các trích dẫn này có cùng kiểu mở và đóng.
Trích dẫn tam được sử dụng để mở rộng chuỗi trích dẫn qua nhiều dòng. Dưới đây là một số ví dụ về các trích dẫn hợp lệ:
word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It is made up of
multiple lines and sentences."""
Comment trong Python
Python hỗ trợ hai loại comment, bao gồm comment trên một dòng và comment trên nhiều dòng. Trong lập trình Python, một dấu # mà không nằm trong một chuỗi mở bất kỳ đánh dấu một comment trên một dòng. Tất cả các ký tự sau dấu # trên cùng dòng đó được coi là một comment và được bỏ qua bởi trình thông dịch. Ví dụ:
# Bình luận đơn dòng đầu tiên
print("Xin chào, Python!")
# Bình luận đơn dòng thứ hai
Chương trình trên sẽ in ra:
Xin chào, Python!
Bạn cũng có thể viết một comment trên cùng dòng với một lệnh hoặc biểu thức như sau:
name = "Madissetti" # Đây là một bình luận
Bạn có thể viết một comment trên nhiều dòng như sau:
# Đây là một bình luận
# Đây là một bình luận nữa
# Tôi đã nói rồi
Python cũng hỗ trợ một loại comment thứ hai, được sử dụng bên trong các trích dẫn tam, ví dụ:
# Bình luận trên một dòng
print("Xin chào Python")
"""
Đây là bình luận trên nhiều dòng.
"""
Sử dụng dòng trống trong lập trình Python
Một dòng chỉ chứa dấu cách trắng và không có gì khác, có thể có một comment, được coi là một dòng trống và Python hoàn toàn bỏ qua nó.
Trong phiên thông dịch tương tác, bạn phải nhập một dòng trống để kết thúc một lệnh đa dòng.
Lệnh đa dòng trên một dòng
Dấu chấm phẩy (;) cho phép xuất hiện nhiều lệnh trên một dòng duy nhất. Tất cả các lệnh này không bắt đầu một khối mã mới. Dưới đây là một ví dụ:
import sys; x = 'foo'; sys.stdout.write(x + 'n')
Nhóm lệnh đa dòng (suite) trong lập trình Python
Một nhóm các lệnh đơn, tạo thành một khối mã duy nhất, được gọi là suite trong Python. Các lệnh phức tạp như if, while, def và class yêu cầu một dòng header và một suite.
Dòng header bắt đầu lệnh (với từ khóa) và kết thúc bằng dấu hai chấm (:) và được theo sau bởi một hoặc nhiều dòng để tạo thành một suite. Ví dụ:
if expression:
suite
elif expression:
suite
else:
suite
Tham số dòng lệnh trong lập trình Python
Nhiều chương trình có thể được chạy để cung cấp cho bạn một số thông tin cơ bản về cách chúng nên chạy. Python cho phép bạn làm điều này bằng cách sử dụng -h:
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
[etc.]
Bạn cũng có thể lập trình cho script của mình để chấp nhận các tùy chọn khác nhau tùy thuộc vào cách bạn thiết lập. Để biết thêm về tham số dòng lệnh, bạn có thể tham khảo bài viết “Tham số dòng lệnh trong Python”. (uCode đề nghị bạn nên tìm hiểu về chương này sau khi đã nắm vững các khái niệm khác của Python.)
Ngoài ra, một điều cần lưu ý là khi bạn gặp dòng nhắc sau:
raw_input("Nhấn phím Enter để thoát.")
Lệnh này yêu cầu bạn nhấn phím Enter để thoát. Ở đây, “nn” được sử dụng để tạo hai dòng mới trước khi hiển thị dòng thực sự. Khi người dùng nhấn phím Enter, chương trình kết thúc. Lệnh này sẽ đợi cho đến khi bạn thực hiện một hành động nào đó, và điều này giữ cho cửa sổ console của bạn mở cho đến khi bạn tiếp tục thực hiện hành động.
Bài viết gốc được đăng tải tại ucode.vn