Cú pháp cơ bản của Python

Ngôn ngữ Python có nhiều điểm tương đồng với Perl, C và Java. Tuy nhiên, có một số khác biệt nhất định giữa các ngôn ngữ.

Chương trình Python đầu tiên

Hãy để chúng tôi tạo và thực thi các chương trình trong các chế độ lập trình khác nhau.

Lập trình chế độ tương tác

Gọi trình thông dịch mà không cung cấp file script làm tham số sẽ đưa ra lời nhắc sau:

$ python
Python 2.4.3 (#1, Nov 11 2010, 13:34:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Nhập đoạn code sau vào dấu nhắc Python và nhấn Enter:

print "Hello, Python!"

Nếu bạn đang chạy phiên bản mới của Python, thì bạn sẽ cần sử dụng câu lệnh print với dấu ngoặc đơn như sau print ("Hello, Python!");. Tuy nhiên, trong phiên bản Python 2.4.3, điều này tạo ra kết quả như sau

Hello, Python!

Lập trình chế độ tập lệnh

Gọi trình thông dịch với tham số tập lệnh bắt đầu thực thi tập lệnh và tiếp tục cho đến khi tập lệnh kết thúc. Khi tập lệnh kết thúc, trình thông dịch không còn hoạt động.

Hãy để chúng tôi viết một chương trình Python đơn giản trong một tập lệnh. Các file Python có phần mở rộng là .py. Nhập mã nguồn sau vào file test.py:

print "Hello, Python!"

Chúng tôi giả sử rằng bạn có trình thông dịch Python được đặt trong biến PATH. Bây giờ, hãy thử chạy chương trình này như sau

$ python test.py

Điều này tạo ra kết quả sau

Hello, Python!

Chúng ta hãy thử một cách khác để thực thi một tập lệnh Python. Dưới đây là file test.py đã sửa đổi:

#!/usr/bin/python

print "Hello, Python!"

Chúng tôi giả sử rằng bạn có trình thông dịch Python có sẵn trong thư mục /usr/bin. Bây giờ, hãy thử chạy chương trình này như sau

$ chmod +x test.py     # This is to make file executable
$./test.py

Điều này tạo ra kết quả sau

Hello, Python!

Định danh Python

Mã định danh Python là tên được sử dụng để xác định một biến, hàm, lớp, mô-đun hoặc đối tượng khác. Một định danh bắt đầu bằng một chữ cái từ A đến Z hoặc a đến z hoặc dấu gạch dưới (_) theo sau là các chữ cái, dấu gạch dưới và chữ số (0 đến 9).

Python không cho phép 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 chữ thường. Do đó, Nhân lựcnhân lực là hai định danh khác nhau trong Python.

Dưới đây là quy ước đặt tên cho mã định danh Python:

  • Tên lớp bắt đầu bằng một chữ cái viết hoa. Tất cả các định danh khác bắt đầu bằng một chữ cái viết thường.
  • Bắt đầu một định danh với một dấu gạch dưới hàng đầu duy nhất cho biết rằng định danh là riêng tư.
  • Bắt đầu một định danh với hai dấu gạch dưới hàng đầu cho thấy một định danh riêng tư mạnh mẽ.
  • Nếu mã định danh cũng kết thúc bằng hai dấu gạch dưới, thì mã định danh là tên đặc biệt do ngôn ngữ xác định.

Từ khóa Python

Danh sách sau đây cho thấy các từ khóa Python. Đây là những từ khóa dành riêng và bạn không thể sử dụng chúng dưới dạng hằng hoặc biến hoặc bất kỳ tên định danh nào khác. Tất cả các từ khóa Python chỉ chứa các chữ cái viết thường.

and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield

Dòng và thụt dòng

Python không cung cấp dấu ngoặc để chỉ ra các khối mã cho các định nghĩa lớp và hàm hoặc điều khiển luồng. Các khối mã được biểu thị bằng cách thụt dòng, phải tuân theo một cách cứng nhắc.

Số lượng khoảng trắng trong thụt dòng có thể thay đổi, nhưng tất cả các câu lệnh trong khối phải được thụt vào cùng một số lượng thụt dòng. Ví dụ:

if True:
   print "True"
else:
   print "False"

Tuy nhiên, khối sau sẽ tạo ra lỗi

if True:
print "Answer"
print "True"
else:
print "Answer"
print "False"

Do đó, trong Python, tất cả các dòng liên tiếp được thụt vào với cùng một số lượng khoảng trắng sẽ tạo thành một khối. Ví dụ sau có các khối câu lệnh khác nhau:

Lưu ý: Đừng cố gắng hiểu logic tại thời điểm này. Chỉ cần chắc chắn rằng bạn hiểu các khối khác nhau.
#!/usr/bin/python

import sys

try:
   # open file stream
   file = open(file_name, "w")
except IOError:
   print "There was an error writing to", file_name
   sys.exit()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
   file_text = raw_input("Enter text: ")
   if file_text == file_finish:
      # close the file
      file.close
      break
   file.write(file_text)
   file.write("\n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
   print "Next time please enter something"
   sys.exit()
try:
   file = open(file_name, "r")
except IOError:
   print "There was an error reading file"
   sys.exit()
file_text = file.read()
file.close()
print file_text

Câu lệnh nhiều dòng

Các câu lệnh trong Python thường kết thúc bằng một dòng mới. Tuy nhiên, Python cho phép sử dụng ký tự (\) để biểu thị rằng dòng sẽ tiếp tục. Ví dụ:

total = item_one + \
        item_two + \
        item_three

Các câu lệnh có trong dấu ngoặc [], {} hoặc () không cần sử dụng ký tự tiếp tục dòng. Ví dụ:

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

Chuỗi trong Python

Python chấp nhận các dấu nháy đơn ('), dấu nháy đôi (") và dấu nháy ba (' '' hoặc" "") để biểu thị các chuỗi ký tự, miễn là cùng một loại dấu nháy bắt đầu và kết thúc chuỗi.

Các dấu nháy ba được sử dụng để trải dài chuỗi trên nhiều dòng. Ví dụ: tất cả những điều sau đây là hợp pháp:

word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""

Comment trong Python

Dấu (#) được sử dụng để bắt đầu comment. Tất cả các ký tự sau # và cho đến cuối dòng vật lý là một phần của comment và trình thông dịch Python bỏ qua chúng.

#!/usr/bin/python

# First comment
print "Hello, Python!" # second comment

Điều này tạo ra kết quả sau

Hello, Python!

Bạn có thể nhập một comment trên cùng một dòng sau một câu lệnh hoặc biểu thức:

name = "Madisetti" # This is again comment

Bạn có thể bình luận nhiều dòng như sau:

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

Theo sau dấu nháy ba cũng bị bỏ qua bởi trình thông dịch Python và có thể được sử dụng như một nhận xét đa dòng:

'''
This is a multiline
comment.
'''

Sử dụng dòng trống

Một dòng chỉ chứa khoảng trắng, có thể có một comment, được gọi là một dòng trống và Python hoàn toàn bỏ qua nó.

Trong một phiên phiên dịch tương tác, bạn phải nhập một dòng vật lý trống để chấm dứt câu lệnh đa dòng.

Chờ người dùng

Dòng sau của chương trình hiển thị lời nhắc, câu lệnh cho biết Bấm phím Enter để thoát ra khỏi chế độ và chờ người dùng thực hiện hành động

#!/usr/bin/python

raw_input("\n\nPress the enter key to exit.")

Ở đây, \n\n được sử dụng để tạo hai dòng mới trước khi hiển thị dòng thông báo. Khi người dùng nhấn phím, chương trình kết thúc. Đây là một mẹo hay để giữ cửa sổ giao diện điều khiển mở cho đến khi người dùng hoàn thành một ứng dụng.

Nhiều câu lệnh trên một dòng

Dấu chấm phẩy (;) cho phép nhiều câu lệnh trên một dòng được đưa ra mà không câu lệnh nào bắt đầu một khối mã mới. Đây là một mẫu sử dụng dấu chấm phẩy:

import sys; x = 'foo'; sys.stdout.write(x + '\n')

Nhóm các câu lệnh

Một nhóm các câu lệnh riêng lẻ, tạo ra một khối mã duy nhất được gọi là bộ trong Python. Các câu lệnh ghép hoặc phức tạp, chẳng hạn như if, while, def và class yêu cầu một dòng tiêu đề và một bộ.

Các dòng tiêu đề bắt đầu câu lệnh (với từ khóa) và chấm dứt bằng dấu hai chấm (:) và được theo sau bởi một hoặc nhiều dòng tạo nên bộ. Ví dụ:

if expression : 
   suite
elif expression : 
   suite 
else : 
   suite

Đối số dòng lệnh

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 được chạy. Python cho phép bạn làm điều này với -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 tập lệnh của mình theo cách nó sẽ chấp nhận các tùy chọn khác nhau. Đối số dòng lệnh là một chủ đề nâng cao sẽ được trình bày ở một bài viết khác.



Bài viết liên quan:

Kiểu chuỗi trong Python là gì? Làm sao để khai báo biến và sử dụng các hàm tích hợp, định dạng kiểu chuỗi trong Python?

Kiểu số trong Python là gì? Python có những kiểu dữ liệu số nào? Các hàm tiện ích về số trong Python?

Vòng lặp trong Python là gì? Python hỗ trợ những loại vòng lặp nào? Cách sử dụng những vòng lặp này trong Python.