Python - Cú pháp cơ bản
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 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
Việc gọi trình thông dịch mà không truyền tệp script dưới dạng 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 văn bản sau vào lời nhắc Python và nhấn Enter -
>>> print "Hello, Python!"
Nếu bạn đang chạy phiên bản Python mới, thì bạn sẽ cần sử dụng câu lệnh in với dấu ngoặc đơn như trong 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ả sau:
Hello, Python!
Lập trình chế độ tập lệnh
Việc gọi trình thông dịch với một 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 tệp Python có phần mở rộng.py. Nhập mã nguồn sau vào tệp test.py -
print "Hello, Python!"
Chúng tôi giả định rằng bạn có bộ thông dịch Python 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!
Hãy để chúng tôi thử một cách khác để thực thi một tập lệnh Python. Đây là tệp test.py đã sửa đổi -
#!/usr/bin/python
print "Hello, Python!"
Chúng tôi giả định rằng bạn có sẵn trình thông dịch Python 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!
Số nhận dạng Python
Đị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ã định danh bắt đầu bằng chữ cái A đến Z hoặc từ a đến z hoặc dấu gạch dưới (_) theo sau là không hoặc nhiều 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ự dấu câu như @, $ và% trong các mã nhận dạng. Python là một ngôn ngữ lập trình phân biệt chữ hoa chữ thường. Vì vậy,Manpower và manpower là hai mã định danh khác nhau trong Python.
Dưới đây là các quy ước đặt tên cho các đị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 số nhận dạng khác bắt đầu bằng một chữ cái viết thường.
Bắt đầu một số nhận dạng với một dấu gạch dưới ở đầu cho biết rằng số nhận dạng là riêng tư.
Bắt đầu một số nhận dạng với hai dấu gạch dưới ở đầu cho biết một số nhận dạng riêng tư.
Nếu số nhận dạng cũng kết thúc bằng hai dấu gạch dưới ở cuối, số nhận dạng là tên đặc biệt do ngôn ngữ xác định.
Từ dành riêng
Danh sách sau đây hiển thị các từ khóa Python. Đây là những từ dành riêng và bạn không thể sử dụng chúng dưới dạng hằng số 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 thường.
và | người điều hành | không phải |
khẳng định | cuối cùng | hoặc là |
phá vỡ | cho | vượt qua |
lớp học | từ | in |
tiếp tục | toàn cầu | nâng cao |
phản đối | nếu | trở về |
del | nhập khẩu | thử |
elif | trong | trong khi |
khác | Là | với |
ngoại trừ | lambda | năng suất |
Dòng và thụt lề
Python không cung cấp dấu ngoặc nhọn để chỉ ra các khối mã cho đị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 thụt lề dòng, được thực thi nghiêm ngặt.
Số lượng khoảng trắng trong thụt lề 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 lượng. Ví dụ -
if True:
print "True"
else:
print "False"
Tuy nhiên, khối sau 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 tục được thụt lề với cùng một số 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:
Note- Đừng cố gắng hiểu logic vào thời điểm này. Chỉ cần đảm bảo rằng bạn hiểu các khối khác nhau ngay cả khi chúng không có niềng răng.
#!/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ự tiếp tục dòng (\) để 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 nằm 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']
Trích dẫn bằng Python
Python chấp nhận các dấu nháy đơn ('), kép (") và gấp ba (' '' hoặc" "") để biểu thị các ký tự của chuỗi, miễn là cùng một loại dấu ngoặc kép bắt đầu và kết thúc chuỗi.
Dấu ngoặc kép được sử dụng để kéo dài chuỗi trên nhiều dòng. Ví dụ: tất cả những điều sau đây đều 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."""
Nhận xét bằng Python
Một dấu thăng (#) không nằm trong một chuỗi ký tự bắt đầu một nhận xét. Tất cả các ký tự sau dấu # và đến cuối dòng vật lý là một phần của nhận xét 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 nhận xét 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.
Chuỗi ba dấu ngoặc kép sau cũng bị trình thông dịch Python bỏ qua và có thể được sử dụng như một nhận xét nhiều 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ó chú thích, được gọi là dòng trống và Python hoàn toàn bỏ qua nó.
Trong một phiên thông dịch tương tác, bạn phải nhập một dòng vật lý trống để kết thúc một câu lệnh nhiều dòng.
Đang chờ người dùng
Dòng sau của chương trình hiển thị lời nhắc, câu nói “Nhấn phím enter để thoát” và đợi 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ực. Khi người dùng nhấn phím, chương trình sẽ kết thúc. Đây là một thủ thuật hay để giữ cho cửa sổ bảng điều khiển mở cho đến khi người dùng sử dụng xong 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 mà không câu lệnh nào bắt đầu một khối mã mới. Đây là đoạn trích mẫu sử dụng dấu chấm phẩy -
import sys; x = 'foo'; sys.stdout.write(x + '\n')
Nhiều nhóm câu lệnh dưới dạng bộ
Một nhóm các câu lệnh riêng lẻ, tạo nên một khối mã duy nhất được gọi là suitesbằng Python. Các câu lệnh ghép hoặc phức, 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à 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 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 mà nó phải 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 và nên được nghiên cứu sau một chút khi bạn đã xem qua phần còn lại của các khái niệm Python.