Bạn có thể sử dụng dấu ngoặc đơn và dấu ngoặc kép Python để tạo chuỗi. Không có sự khác biệt giữa hai. Không quan trọng bạn sử dụng phương pháp nào
print["This is fine"] print['Just like this']
Bất kể bạn sử dụng cái nào, vui lòng nhất quán với nó trong cơ sở mã. Không viết một chuỗi có dấu ngoặc kép và chuỗi kia có dấu nháy đơn
Ngoài ra, có một số điều cần lưu ý khi xử lý chuỗi trong Python. Hãy thảo luận ngắn gọn về chúng
Vấn đề với Dấu ngoặc kép bên trong Chuỗi
Nếu bạn sử dụng các từ như
print['Let's go']1 trong một chuỗi có dấu nháy đơn, bạn cần xử lý việc diễn giải sai bằng Python
Ví dụ, chuỗi này là sai
print['Let's go']
đầu ra
File "example.py", line 1 print['Let's go'] ^ SyntaxError: invalid syntax
Sự cố này phát sinh do Python thấy chuỗi có ba phần thay vì một chuỗi. Đây là những gì trình thông dịch Python nhìn thấy
print['Let's go']
2print['Let's go']
0print['Let's go']
1
Đương nhiên, điều này sẽ không làm việc
Để tránh các chuỗi gây ra lỗi như thế này, bạn có thể sử dụng dấu ngoặc kép
print["Let's go"]
đầu ra
Let's go
Hoặc bạn có thể thoát dấu nháy đơn bằng dấu gạch chéo ngược như sau
print['Let\'s go']
đầu ra
Let's go
\’ cho trình thông dịch Python biết bạn muốn thoát khỏi ký tự ‘. Nói cách khác, bạn nói với trình thông dịch rằng ký tự thường kết thúc chuỗi này giờ là một phần của nó và sẽ bị trình thông dịch bỏ qua
Đọc thêm về cách trích dẫn một chuỗi Python
Làm thế nào về trích dẫn ba trong Python
Nếu bạn quen thuộc hơn với Python, bạn có thể biết rằng cũng có một loại chuỗi đặc biệt được tạo bằng dấu ngoặc kép ”’…”’
Đây được gọi là một chuỗi tài liệu. Nó có thể được sử dụng để ghi lại các hàm, lớp, mô-đun và kiểu
Ví dụ: một chuỗi tài liệu có thể trông như thế này
def add[a, b]: """ sums up two numbers """ return a + b
Chuỗi tài liệu hoạt động cùng với hàm help[] trong Python. Khi bạn gọi help[] trên một đối tượng, nó sẽ trả về chuỗi tài liệu của đối tượng [nếu có]
Có thể sử dụng chuỗi tài liệu để giải quyết vấn đề về dấu ngoặc kép bên trong chuỗi. Nhưng bạn không nên làm điều đó vì chúng nhằm mục đích mã hóa tài liệu. Không viết chuỗi
Đọc thêm về docstrings trong Python
Sự kết luận
Trong Python, bạn có thể tạo một chuỗi có dấu ngoặc kép hoặc dấu ngoặc đơn. không có sự khác biệt
Khi sử dụng dấu ngoặc kép bên trong một chuỗi, đảm bảo thoát khỏi chúng để không gây ra lỗi cú pháp
Một dấu ngoặc kép ba trong chuỗi được sử dụng làm chuỗi tài liệu. Không sử dụng nó như một chuỗi thông thường
Một chương trình máy tính trông giống như một ngôn ngữ mã, ngôn ngữ này cần thiết để máy tính hiểu chính xác ý nghĩa của các lệnh của bạn. Nhưng, là một ngôn ngữ mã khiến con người khó đọc hơn. Để bù đắp cho điều này, bạn được phép viết thêm ghi chú trong chương trình của mình mà máy tính bỏ qua. Những ghi chú này được gọi là nhận xét
Trong Python, bất kỳ dòng hướng dẫn nào chứa ký hiệu
print['Let's go']3 ["dấu thăng" hoặc "băm"] biểu thị phần đầu của nhận xét. Phần còn lại của dòng sẽ bị bỏ qua khi chạy chương trình. Đây là một ví dụ
Thí dụ
Tác dụng của bình luậnVì dòng thứ hai bắt đầu bằng ký hiệu
print['Let's go']3 nên Python hoàn toàn bỏ qua dòng đó và như bạn có thể thấy, số
print['Let's go']5 không được in ra. Sử dụng phổ biến cho nhận xét bao gồm
- giải thích các phần của chương trình để bạn hoặc người khác đọc sau;
- để lại ghi chú "việc cần làm", khi bạn viết một chương trình dài hơn;
- tạm thời vô hiệu hóa ["nhận xét"] một dòng của chương trình mà không xóa hoàn toàn dòng đó, để dễ dàng đưa vào lại sau này
Đây là một bài tập để minh họa. Nếu bạn chỉnh sửa mã quá nhiều và muốn đưa mã về phiên bản mặc định, hãy chọn Đặt lại mã về mặc định
Bài tập viết mã. Đoán lần thứ hai
Bạn cần tạo tài khoản và đăng nhập để đặt câu hỏi
Dây
Chuỗi là chuỗi các chữ cái và số, hay nói cách khác là các đoạn văn bản. Chúng được bao quanh bởi hai dấu ngoặc kép để bảo vệ. ví dụ trong Bài 0 phần
print['Let's go']6 của chương trình đầu tiên là một chuỗi. Nếu dấu thăng
print['Let's go']3 xuất hiện trong một chuỗi, thì nó không được coi là chú thích
Thí dụ
Một chuỗi chứa ký hiệuprint['Let's go']3
Hành vi này là do phần bên trong dấu ngoặc kép
print['Let's go']9 là một chuỗi ký tự, nghĩa là nó phải được sao chép theo nghĩa đen và không được hiểu là một lệnh. Tương tự,
File "example.py", line 1 print['Let's go'] ^ SyntaxError: invalid syntax0 sẽ không in ra số 7 mà chỉ in ra chuỗi
File "example.py", line 1 print['Let's go'] ^ SyntaxError: invalid syntax1
trình tự thoát
Điều gì sẽ xảy ra nếu bạn muốn bao gồm ký tự trích dẫn
print['Let's go']30 bên trong một chuỗi? . vấn đề là Python nhìn thấy một chuỗi
print['Let's go']32 theo sau bởi một thứ gì đó
print['Let's go']33 không có trong chuỗi. Đây không phải là những gì chúng tôi dự định
Python có hai cách đơn giản để đặt các ký hiệu trích dẫn trong chuỗi
- Bạn được phép bắt đầu và kết thúc một chuỗi ký tự bằng dấu nháy đơn [còn được gọi là dấu nháy đơn], như
print['Let's go']
34. Sau đó, dấu ngoặc kép có thể đi vào giữa, chẳng hạn nhưprint['Let's go']
35 - Bạn có thể đặt một ký tự gạch chéo ngược theo sau là một trích dẫn [
print['Let's go']
36 hoặcprint['Let's go']
37]. Đây được gọi là chuỗi thoát và Python sẽ xóa dấu gạch chéo ngược và chỉ đặt trích dẫn trong chuỗi. Đây là một ví dụ.Ví dụ
Dấu gạch chéo ngược bảo vệ dấu ngoặc kép, nhưng không được in
Hơn nữa, do các chuỗi thoát, dấu gạch chéo ngược [
print['Let's go']38] là một ký tự đặc biệt. Vì vậy, để bao gồm dấu gạch chéo ngược trong một chuỗi, bạn thực sự cần "thoát khỏi nó" bằng dấu gạch chéo ngược thứ hai, hay nói cách khác, bạn cần viết
print['Let's go']39 trong chuỗi ký tự
Bài tập trắc nghiệm. Nhân vật thoát hiểm
Đầu ra của
print['Let's go']30 là gìLựa chọn của bạn
Chính xác
Bài tập viết mã. Cuộc tẩu thoát vĩ đại
Viết chương trình in ra nội dung sau.print['Let's go']0Ghi chú. có nhiều hơn một cách để làm điều này [như thường lệ]. Ví dụ: bạn có thể đặt toàn bộ chuỗi trong dấu ngoặc đơn hoặc dấu ngoặc kép. Trong cả hai trường hợp, thoát là cần thiết. Để luyện tập thêm, hãy giải bài toán theo cách này, rồi giải theo cách khác. Bạn có thể giải nó theo cách thứ ba không?
Bạn cần tạo tài khoản và đăng nhập để đặt câu hỏi
Có các chuỗi thoát khác, như "dòng mới", mà chúng ta sẽ không thảo luận ngay bây giờ. Bây giờ, bạn đã sẵn sàng để chuyển sang bài học tiếp theo