Hướng dẫn what is a string literal python? - chuỗi ký tự python là gì?

W3Schools được tối ưu hóa cho việc học và đào tạo. Ví dụ có thể được đơn giản hóa để cải thiện việc đọc và học tập. Hướng dẫn, tài liệu tham khảo và ví dụ được xem xét liên tục để tránh lỗi, nhưng chúng tôi không thể đảm bảo tính chính xác đầy đủ của tất cả các nội dung. Trong khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng, cookie và chính sách bảo mật của chúng tôi.

Bản quyền 1999-2022 bởi dữ liệu refsnes. Đã đăng ký Bản quyền. W3Schools được cung cấp bởi W3.CSS.
W3Schools is Powered by W3.CSS.

Python có một lớp chuỗi tích hợp có tên "str" ​​với nhiều tính năng tiện dụng (có một mô-đun cũ hơn có tên là "chuỗi" mà bạn không nên sử dụng). Chuỗi chữ có thể được bao quanh bởi các trích dẫn kép hoặc đơn, mặc dù các trích dẫn đơn được sử dụng phổ biến hơn. Backslash thoát khỏi hoạt động theo cách thông thường trong cả hai chữ được trích dẫn đơn và kép - ví dụ: \ n \ '\ ". Một chuỗi được trích dẫn kép có thể chứa các trích dẫn đơn mà không có bất kỳ sự ồn ào nào (ví dụ:" Tôi đã không làm điều đó ") và tương tự chuỗi được trích dẫn có thể chứa các trích dẫn kép. Phải là một dấu gạch chéo ngược \ ở cuối mỗi dòng để thoát khỏi dòng mới. Chuỗi chữ viết trong ba trích dẫn, "" "hoặc '' ', có thể trải rộng nhiều dòng văn bản.

Các chuỗi Python là "bất biến", điều đó có nghĩa là chúng không thể thay đổi sau khi chúng được tạo ra (chuỗi Java cũng sử dụng phong cách bất biến này). Vì các chuỗi không thể thay đổi, chúng tôi xây dựng các chuỗi * mới * khi chúng tôi đi để biểu diễn các giá trị được tính toán. Vì vậy, ví dụ như biểu thức ('xin chào' + 'ở đó') có trong 2 chuỗi 'xin chào' và 'ở đó' và xây dựng một chuỗi mới 'Hellothere'.

Các ký tự trong một chuỗi có thể được truy cập bằng cú pháp [] tiêu chuẩn và như Java và C ++, Python sử dụng lập chỉ mục dựa trên không, vì vậy nếu s là 'Hello' [1] là 'e'. Nếu chỉ mục nằm ngoài giới hạn cho chuỗi, Python sẽ gây ra lỗi. Kiểu Python (không giống như Perl) là tạm dừng nếu không thể biết phải làm gì, thay vì chỉ tạo ra một giá trị mặc định. Cú pháp "lát" tiện dụng (bên dưới) cũng hoạt động để trích xuất bất kỳ chuỗi con nào từ một chuỗi. Hàm Len (Chuỗi) trả về độ dài của chuỗi. Chức năng [] và chức năng Len () thực sự hoạt động trên bất kỳ loại trình tự nào - chuỗi, danh sách, v.v. Python Newbie Gotcha: Không sử dụng "Len" làm tên biến để tránh chặn hàm Len (). Toán tử '+' có thể nối hai chuỗi. Lưu ý trong mã bên dưới rằng các biến không được khai báo trước-chỉ cần gán cho chúng và đi.

  s = 'hi'
  print s[1]          ## i
  print len(s)        ## 2
  print s + ' there'  ## hi there

Không giống như Java, '+' không tự động chuyển đổi số hoặc các loại khác thành biểu mẫu chuỗi. Hàm str () chuyển đổi các giá trị thành một biểu mẫu chuỗi để chúng có thể được kết hợp với các chuỗi khác.

  pi = 3.14
  ##text = 'The value of pi is ' + pi      ## NO, does not work
  text = 'The value of pi is '  + str(pi)  ## yes

Đối với các số, các toán tử tiêu chuẩn, +, /, * hoạt động theo cách thông thường. Không có toán tử ++, nhưng +=, -=, v.v. Nếu bạn muốn phân chia số nguyên, hãy sử dụng 2 dấu gạch chéo - ví dụ: 6 // 5 là 1

Hàm "In" thường in ra một hoặc nhiều mục Python theo sau là một dòng mới. Một chuỗi "thô" theo nghĩa đen được đặt trước bởi một 'r' và truyền tất cả các ký tự thông qua mà không cần xử lý đặc biệt các dấu gạch chéo ngược, do đó, r'x \ nx 'đánh giá theo chuỗi dài-4' x \ nx '. "In" có thể lấy một số đối số để thay đổi cách nó in mọi thứ (xem Python.org Định nghĩa chức năng in) như cài đặt "kết thúc" thành "" để không còn in một dòng mới sau khi nó hoàn thành việc in ra tất cả các mục.

  raw = r'this\t\n and that'

  # this\t\n and that
  print(raw)

  multi = """It was the best of times.
  It was the worst of times."""

  # It was the best of times.
  #   It was the worst of times.
print(multi)

Phương thức chuỗi

Dưới đây là một số phương pháp chuỗi phổ biến nhất. Một phương thức giống như một hàm, nhưng nó chạy "trên" một đối tượng. Nếu biến s là một chuỗi, thì mã s.lower () chạy phương thức thấp hơn () trên đối tượng chuỗi đó và trả về kết quả (ý tưởng này về một phương thức chạy trên một đối tượng là một trong những ý tưởng cơ bản tạo ra đối tượng Lập trình định hướng, OOP). Dưới đây là một số phương thức chuỗi phổ biến nhất:

  • s.lower (), s.upper () - Trả về phiên bản chữ thường hoặc chữ hoa của chuỗi
  • s.strip () - Trả về một chuỗi với khoảng trắng bị loại bỏ từ đầu và kết thúc
  • s.isalpha ()/s.isdigit ()/s.isspace () ... - kiểm tra xem tất cả các chars chuỗi nằm trong các lớp ký tự khác nhau
  • s.StartSwith ('other'), s.endswith ('other') - kiểm tra xem chuỗi bắt đầu hoặc kết thúc với chuỗi đã cho khác
  • s.find ('other') -tìm kiếm chuỗi đã cho khác (không phải là biểu thức chính quy) trong s và trả về chỉ mục đầu tiên nơi nó bắt đầu hoặc -1 nếu không tìm thấy
  • s.replace ('cũ', 'mới') - trả về một chuỗi trong đó tất cả các lần xuất hiện của 'cũ' đã được thay thế bằng 'mới'
  • S.Split ('Delim') - Trả về một danh sách các chuỗi con được phân tách bằng dấu phân cách đã cho. Phân phối không phải là một biểu thức chính quy, nó chỉ là văn bản. 'aaa, bbb, ccc'.split (', ') -> [' aaa ',' bbb ',' ccc ']. Như một trường hợp đặc biệt thuận tiện S.Split () (không có đối số) chia tách trên tất cả các chars trắng.
  • s.join (danh sách) - Đối diện với split (), tham gia các phần tử trong danh sách đã cho với nhau bằng cách sử dụng chuỗi làm dấu phân cách. ví dụ. '---'. Tham gia (['aaa', 'bbb', 'ccc'])-> aaa --- bbb --- ccc

Một tìm kiếm của Google cho "Python str" sẽ dẫn bạn đến các phương thức chuỗi python.org chính thức liệt kê tất cả các phương thức STR.

Python không có loại ký tự riêng biệt. Thay vào đó, một biểu thức như S [8] trả về một chuỗi độ dài-1 chứa ký tự. Với chuỗi dài-1 đó, các toán tử ==,

Chuỗi lát chuỗi

Cú pháp "Slice" là một cách tiện dụng để chỉ các phần phụ của các chuỗi-thường là các chuỗi và danh sách. Các lát [bắt đầu: kết thúc] là các yếu tố bắt đầu khi bắt đầu và mở rộng đến nhưng không bao gồm kết thúc. Giả sử chúng ta có s = "xin chào"

Hướng dẫn what is a string literal python? - chuỗi ký tự python là gì?

  • S [1: 4] là 'ELL' - ký tự bắt đầu tại INDEX 1 và mở rộng lên đến nhưng không bao gồm INDEX 4
  • s [1:] là 'ello' - bỏ qua các mặc định chỉ mục vào đầu hoặc kết thúc chuỗi
  • S [:] là 'Xin chào' - Bỏ qua cả hai luôn cung cấp cho chúng tôi một bản sao của toàn bộ (đây là cách Pythonic để sao chép một chuỗi như một chuỗi hoặc danh sách)
  • S [1: 100] là 'ello' - một chỉ mục quá lớn được cắt xuống theo chiều dài chuỗi

Các số chỉ mục dựa trên không có tiêu chuẩn cho phép truy cập dễ dàng vào các ký tự gần đầu chuỗi. Thay vào đó, Python sử dụng các số âm để dễ dàng truy cập vào ký tự ở cuối chuỗi: S [-1] là char cuối cùng 'o', s [-2] là 'l' char, và như vậy. Số chỉ mục âm tính trở lại từ cuối chuỗi:

  • S [-1] là 'o'-char cuối cùng (thứ 1 từ cuối)
  • s [-4] là 'e'-thứ 4 từ cuối
  • S [:-3] là 'anh ấy'-đi đến nhưng không bao gồm 3 ký tự cuối cùng.
  • S [-3:] là 'llo'-bắt đầu với char thứ 3 từ cuối và mở rộng đến cuối chuỗi.

Đó là một sự thật gọn gàng của các lát cắt mà đối với bất kỳ chỉ số n,

  pi = 3.14
  ##text = 'The value of pi is ' + pi      ## NO, does not work
  text = 'The value of pi is '  + str(pi)  ## yes
2. Điều này hoạt động ngay cả đối với N âm hoặc ngoài giới hạn. Hoặc đặt một cách khác S [: n] và s [n:] luôn phân vùng chuỗi thành hai phần chuỗi, bảo tồn tất cả các ký tự. Như chúng ta sẽ thấy trong phần Danh sách sau, các lát cắt cũng hoạt động với danh sách.

Định dạng chuỗi

Một điều gọn gàng Python có thể làm là tự động chuyển đổi các đối tượng thành một chuỗi phù hợp để in. Hai cách tích hợp để thực hiện điều này là các chữ được định dạng, còn được gọi là "F-Strings" và gọi str.format ().

Định dạng chuỗi chữ

Bạn sẽ thường thấy các chuỗi chữ được định dạng được sử dụng trong các tình huống như:

  value = 2.791514
  print(f'approximate value = {value:.2f}')  # approximate value = 2.79

  car = {'tires':4, 'doors':2}
  print(f'car = {car}') # car = {'tires': 4, 'doors': 2}

Một chuỗi theo nghĩa đen được định dạng được đặt trước với 'F' (như tiền tố 'r' được sử dụng cho các chuỗi thô). Bất kỳ văn bản nào bên ngoài niềng răng xoăn '{}' được in trực tiếp. Các biểu thức chứa trong '{}' được in ra bằng cách sử dụng đặc tả định dạng được mô tả trong thông số định dạng. Có rất nhiều điều gọn gàng bạn có thể làm với định dạng bao gồm cắt ngắn và chuyển đổi sang ký hiệu khoa học và căn chỉnh bên trái/phải/trung tâm.

Các chuỗi F rất hữu ích khi bạn muốn in ra một bảng các đối tượng và muốn các cột đại diện cho các thuộc tính đối tượng khác nhau được căn chỉnh như

  address_book = [{'name':'N.X.', 'addr':'15 Jones St', 'bonus': 70},
      {'name':'J.P.', 'addr':'1005 5th St', 'bonus': 400},
      {'name':'A.A.', 'addr':'200001 Bdwy', 'bonus': 5},]

  for person in address_book:
    print(f'{person["name"]:8} || {person["addr"]:20} || {person["bonus"]:>5}')

  # N.X.     || 15 Jones St          ||    70
  # J.P.     || 1005 5th St          ||   400
  # A.A.     || 200001 Bdwy          ||     5

Sợi dây %

Python cũng có một printf () cũ hơn-như cơ sở để kết hợp một chuỗi. Toán tử %có chuỗi định dạng kiểu printf ở bên trái ( %d int, %s chuỗi, %f/ %g điểm thả nổi) và các giá trị phù hợp dấu phẩy, thường được nhóm bên trong ngoặc đơn):

  # % operator
  text = "%d little pigs come out, or I'll %s, and I'll %s, and I'll blow your %s down." % (3, 'huff', 'puff', 'house')

Dòng trên là loại dài - giả sử bạn muốn chia nó thành các dòng riêng biệt. Bạn không thể chỉ chia dòng sau '%' như bạn có thể trong các ngôn ngữ khác, vì theo mặc định, Python coi mỗi dòng là một câu lệnh riêng hàng). Để khắc phục điều này, việc đặt toàn bộ biểu thức trong một bộ dấu ngoặc đơn bên ngoài - sau đó biểu thức được phép trải rộng nhiều dòng. Kỹ thuật mã hóa mã này hoạt động với các cấu trúc nhóm khác nhau được nêu chi tiết bên dưới: (), [], {}.

  # Add parentheses to make the long line work:
  text = (
    "%d little pigs come out, or I'll %s, and I'll %s, and I'll blow your %s down."
    % (3, 'huff', 'puff', 'house'))

Điều đó tốt hơn, nhưng dòng vẫn còn hơi dài. Python cho phép bạn cắt một dòng thành các khối, sau đó nó sẽ tự động kết hợp. Vì vậy, để làm cho dòng này thậm chí ngắn hơn, chúng ta có thể làm điều này:

  # Split the line into chunks, which are concatenated automatically by Python
  text = (
    "%d little pigs come out, "
    "or I'll %s, and I'll %s, "
    "and I'll blow your %s down."
    % (3, 'huff', 'puff', 'house'))

Chuỗi (unicode vs byte)

Chuỗi python thông thường là unicode.

Python cũng hỗ trợ các chuỗi bao gồm các byte đơn giản (được biểu thị bằng tiền tố 'B' trước một chuỗi theo nghĩa đen) như:

> byte_string = b'A byte string'
> byte_string
  b'A byte string'

Chuỗi Unicode là một loại đối tượng khác từ chuỗi byte nhưng các thư viện khác nhau như biểu thức chính quy hoạt động chính xác nếu được truyền một trong hai loại chuỗi.

Để chuyển đổi chuỗi python thông thường thành byte, hãy gọi phương thức mã hóa () trên chuỗi. Đi theo hướng khác, phương thức DECODE () Byte Decode () chuyển đổi các byte đơn giản được mã hóa thành chuỗi unicode:

> ustring = 'A unicode \u018e string \xf1'
> b = ustring.encode('utf-8')
> b
b'A unicode \xc6\x8e string \xc3\xb1'  ## bytes of utf-8 encoding. Note the b-prefix.
> t = b.decode('utf-8')                ## Convert bytes back to a unicode string
> t == ustring                         ## It's the same as the original, yay!

True

Trong phần đọc tệp, có một ví dụ cho thấy cách mở tệp văn bản với một số chuỗi mã hóa và đọc ra các chuỗi Unicode.

Nếu tuyên bố

Python không sử dụng {} để gửi các khối mã cho if/loops/function, v.v. Thay vào đó, Python sử dụng dấu hai chấm (:) và thụt/khoảng trắng để câu lệnh. Bài kiểm tra boolean cho một nếu không cần phải ở trong ngoặc đơn (sự khác biệt lớn so với C ++/Java) và nó có thể có * Elif * và * khác * mệnh đề (mnemonic: từ "elif" có cùng độ dài với từ "" khác").

Bất kỳ giá trị nào cũng có thể được sử dụng như một bài kiểm tra if. Các giá trị "không" tất cả đều được tính là sai: Không, 0, chuỗi trống, danh sách trống, từ điển trống. Ngoài ra còn có một loại boolean với hai giá trị: true và false (được chuyển đổi thành int, đây là 1 và 0). Python có các hoạt động so sánh thông thường: ==,! =, =. Không giống như Java và C, == bị quá tải để hoạt động chính xác với các chuỗi. Các toán tử boolean là các từ được đánh vần là *và *, *hoặc *, *không *(Python không sử dụng kiểu C && ||!). Dưới đây là mã có thể trông như thế nào đối với một ứng dụng sức khỏe cung cấp các khuyến nghị đồ uống trong suốt cả ngày - chú ý cách mỗi khối của các câu lệnh sau đó/khác bắt đầu bằng A: và các câu lệnh được nhóm lại bởi thụt lề của chúng:

  pi = 3.14
  ##text = 'The value of pi is ' + pi      ## NO, does not work
  text = 'The value of pi is '  + str(pi)  ## yes
0

Tôi thấy rằng việc bỏ qua ":" là lỗi cú pháp phổ biến nhất của tôi khi gõ vào loại mã trên, có lẽ vì đó là một điều bổ sung để nhập thói quen C ++/Java của tôi. Ngoài ra, đừng đặt bài kiểm tra Boolean trong ngoặc đơn - đó là thói quen c/java. Nếu mã ngắn, bạn có thể đặt mã trên cùng một dòng sau ":", như thế này (điều này áp dụng cho các chức năng, vòng lặp, v.v. Ngoài ra), mặc dù một số người cảm thấy dễ đọc hơn đối với mọi thứ trên các dòng riêng biệt.

  pi = 3.14
  ##text = 'The value of pi is ' + pi      ## NO, does not work
  text = 'The value of pi is '  + str(pi)  ## yes
1

Bài tập: String1.py

Để thực hành tài liệu trong phần này, hãy thử bài tập chuỗi1.py trong các bài tập cơ bản.string1.py exercise in the Basic Exercises.

Chuỗi có nghĩa là gì?

Một "chuỗi chữ" là một chuỗi các ký tự từ bộ ký tự nguồn được đặt trong các dấu ngoặc kép ("").Chuỗi chữ được sử dụng để thể hiện một chuỗi các ký tự, được kết hợp với nhau, tạo thành một chuỗi kết thúc null.a sequence of characters from the source character set enclosed in double quotation marks (" "). String literals are used to represent a sequence of characters which, taken together, form a null-terminated string.

Chuỗi theo nghĩa đen vs chuỗi python là gì?

Một chuỗi theo nghĩa đen là những gì bạn nhập vào mã nguồn của bạn.Giá trị chuỗi là những gì được đầu ra khi bạn in nó.. The string value is what gets output when you print it.

Ví dụ theo nghĩa đen của chuỗi là gì?

Chuỗi theo nghĩa đen hoặc chuỗi ẩn danh là một giá trị chuỗi trong mã nguồn của chương trình máy tính.Các ngôn ngữ lập trình hiện đại thường sử dụng một chuỗi các ký tự được trích dẫn, chính thức là "các dấu phân cách được đặt khung", như trong x = "foo", trong đó "foo" là một chuỗi theo nghĩa đen với giá trị foo.x = "foo" , where "foo" is a string literal with value foo .

Python có chuỗi theo nghĩa đen không?

Chuỗi chữ có thể được bao quanh bởi các trích dẫn kép hoặc đơn, mặc dù các trích dẫn đơn được sử dụng phổ biến hơn., although single quotes are more commonly used.