Thật tốt khi có các lựa chọn thay thế - dấu ngoặc đơn và dấu ngoặc kép về cơ bản được sử dụng thay thế cho nhau trong Python
Tất cả chúng ta, những người lập trình Python đều biết rằng có việc sử dụng dấu ngoặc đơn và dấu ngoặc kép liên quan đến việc khai báo các chuỗi trong Python. Tuy nhiên, không phải tất cả chúng ta đều biết rằng có một số cách sử dụng nhất định liên quan đến dấu ngoặc kép
Bài viết ngắn này đánh giá việc sử dụng dấu ngoặc đơn, dấu ngoặc kép và dấu ngoặc ba trong Python
Báo giá đơn và kép
Sử dụng cơ bản
Cách sử dụng phổ biến nhất của dấu ngoặc đơn và dấu ngoặc kép là biểu diễn các chuỗi bằng cách đặt một chuỗi ký tự. Như được hiển thị trong mã bên dưới, chúng tôi tạo hai chuỗi này bằng cách sử dụng dấu ngoặc đơn và dấu ngoặc kép tương ứng
>>> quotes_single = 'a_string'>>> quotes_double = "a_string"
>>> quotes_single == quotes_double
True
Như bạn nhận thấy, các chuỗi được tạo bằng cách sử dụng dấu ngoặc đơn và dấu ngoặc kép giống nhau. Nói cách khác, chúng ta có thể sử dụng dấu ngoặc đơn và dấu ngoặc kép thay thế cho nhau khi chúng ta khai báo một chuỗi. Tuy nhiên, cần lưu ý rằng chúng tôi không muốn trộn chúng vì đó là lỗi cú pháp
>>> "mixed quotes'File "<stdin>", line 1
"mixed quotes'
^
SyntaxError: EOL while scanning string literal
>>> 'mixed quotes"
File "<stdin>", line 1
'mixed quotes"
^
SyntaxError: EOL while scanning string literal
hành vi trốn thoát
Cũng giống như các ngôn ngữ lập trình khác, khi một chuỗi chứa các ký tự đặc biệt như dấu ngoặc kép, chúng ta cần thoát khỏi chúng. Một ví dụ về việc không thoát được hiển thị bên dưới
>>> 'It's a bad example.'File "<stdin>", line 1
'It's a bad example.'
^
SyntaxError: invalid syntax
Làm thế nào chúng ta có thể sửa lỗi này? . Cách khác là sử dụng dấu ngoặc kép thay vì dấu ngoặc đơn làm dấu ngoặc kép kèm theo. Cả hai cách được hiển thị dưới đây
>>> 'It\'s a good example.'"It's a good example."
>>> "It's a good example."
"It's a good example."
Tương tự, nếu chuỗi chứa dấu nháy kép, chúng ta có thể sử dụng dấu nháy đơn để biểu diễn chuỗi sao cho không phải thoát dấu nháy kép. Một ví dụ được đưa ra dưới đây
>>> 'She said, "Thank you!"''She said, "Thank you!"'
Tuy nhiên, nếu có cả dấu ngoặc đơn và dấu ngoặc kép trong chuỗi, đó là lỗi cú pháp nếu bạn không thoát khỏi dấu ngoặc kép giống với dấu ngoặc kép được sử dụng bởi toàn bộ chuỗi
>>> print('She said, "Thank you! It's mine."')File "<stdin>", line 1
print('She said, "Thank you! It's mine."')
^
SyntaxError: invalid syntax
>>> print('She said, "Thank you! It\'s mine."')
She said, "Thank you! It's mine."
ba dấu ngoặc kép
Các chuỗi kèm theo chứa dấu ngoặc đơn và dấu ngoặc kép
Như đã đề cập ở phần cuối của phần trên, chúng ta cần thoát dấu ngoặc đơn hoặc dấu ngoặc kép tùy thuộc vào dấu ngoặc kép kèm theo mà chuỗi sử dụng. Trên thực tế, chúng ta có thể sử dụng dấu ngoặc kép (i. e. , bộ ba dấu ngoặc đơn hoặc bộ ba dấu ngoặc kép) để biểu thị các chuỗi chứa cả dấu ngoặc đơn và dấu ngoặc kép để loại bỏ nhu cầu thoát bất kỳ
>>> print('''She said, "Thank you! It's mine."''')She said, "Thank you! It's mine."
Cần lưu ý rằng khi một chuỗi bắt đầu hoặc kết thúc bằng một dấu ngoặc đơn hoặc dấu ngoặc kép và chúng ta muốn sử dụng dấu ngoặc kép ba cho chuỗi, chúng ta cần sử dụng các dấu ngoặc kép khác với dấu ngoặc kép bắt đầu hoặc kết thúc. Ví dụ: đối với chuỗi trong đoạn mã trên, việc sử dụng ba dấu nháy kép sẽ dẫn đến lỗi cú pháp. Trong trường hợp này, chúng tôi muốn sử dụng ba dấu nháy đơn như trên
>>> print("""She said, "Thank you! It's mine."""")File "<stdin>", line 1
print("""She said, "Thank you! It's mine."""")
^
SyntaxError: EOL while scanning string literal
Chuỗi nhiều dòng
Một trường hợp sử dụng khác của dấu ngoặc kép là biểu thị một chuỗi nhiều dòng. Một ví dụ được đưa ra dưới đây. Bạn có thể sử dụng dấu nháy đơn ba hoặc kép trong trường hợp này
________số 8Mặc dù chúng ta có thể đạt được hiệu quả tương tự bằng cách sử dụng các ký hiệu >>> "mixed quotes'
File "<stdin>", line 1
"mixed quotes'
^
SyntaxError: EOL while scanning string literal
>>> 'mixed quotes"
File "<stdin>", line 1
'mixed quotes"
^
SyntaxError: EOL while scanning string literal1 để tạo các chuỗi nhiều dòng như bên dưới, nhưng việc sử dụng các ký hiệu >>> "mixed quotes'
File "<stdin>", line 1
"mixed quotes'
^
SyntaxError: EOL while scanning string literal
>>> 'mixed quotes"
File "<stdin>", line 1
'mixed quotes"
^
SyntaxError: EOL while scanning string literal1 sẽ khiến chuỗi khó đọc hơn. Ngược lại, sử dụng ba dấu ngoặc kép có thể viết chuỗi theo cách chính xác của nó và do đó nó có khả năng đọc tốt hơn
File "<stdin>", line 1
"mixed quotes'
^
SyntaxError: EOL while scanning string literal
>>> 'mixed quotes"
File "<stdin>", line 1
'mixed quotes"
^
SyntaxError: EOL while scanning string literal1
Ngoài ra, một ứng dụng hữu ích của chuỗi kèm theo dấu ngoặc kép là chỉ định một số nhận xét trong chuỗi nhiều dòng, chẳng hạn như một phần của định nghĩa hàm như bên dưới
>>> "mixed quotes'File "<stdin>", line 1
"mixed quotes'
^
SyntaxError: EOL while scanning string literal
>>> 'mixed quotes"
File "<stdin>", line 1
'mixed quotes"
^
SyntaxError: EOL while scanning string literal0
Chúng tôi có thể nói rõ ràng các nhận xét cho chức năng là gì
kết luận
Bài viết này đã xem xét cách sử dụng phổ biến của các trích dẫn đơn, kép và ba trong Python. Dưới đây là tóm tắt nhanh về các trường hợp sử dụng này