\0 nghĩa là gì trong chuỗi python?

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

Các chuỗi Python là "bất biến", có nghĩa là chúng không thể thay đổi sau khi chúng được tạo (các chuỗi Java cũng sử dụng kiểu bất biến này). Vì các chuỗi không thể thay đổi, nên chúng tôi xây dựng các chuỗi *new* khi chúng tôi biểu diễn các giá trị được tính toán. Vì vậy, ví dụ, biểu thức ('hello' + 'there') nhận vào 2 chuỗi 'hello' và 'there' và tạo 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à giống như Java và C++, Python sử dụng lập chỉ mục dựa trên số 0, vì vậy nếu s là 'xin chào' s[1] là 'e'. Nếu chỉ mục nằm ngoài giới hạn của chuỗi, Python sẽ báo lỗi. Kiểu Python (không giống như Perl) là tạm dừng nếu nó không thể biết phải làm gì, thay vì chỉ tạo 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(string) trả về độ dài của một chuỗi. Cú pháp [ ] và hàm len() thực sự hoạt động trên mọi loại trình tự -- chuỗi, danh sách, v.v. Python cố gắng làm cho các hoạt động của nó hoạt động nhất quán trên các loại khác nhau. Người mới bắt đầu sử dụng Python. không sử dụng "len" làm tên biến để tránh chặn chức năng 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à bắt đầu

  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 dạng chuỗi. Hàm str() chuyển đổi các giá trị thành dạng 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. công việc. Nếu bạn muốn chia số nguyên, hãy sử dụng 2 dấu gạch chéo -- e. g. 6 // 5 là 1

Chức năng "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 ký tự "thô" có tiền tố là 'r' và chuyển tất cả các ký tự qua mà không cần xử lý đặc biệt các dấu gạch chéo ngược, vì vậy r'x\nx' ước tính thành chuỗi dài 4 'x\nx'. "in" có thể nhận một số đối số để thay đổi cách nó in ra mọi thứ (xem python. định nghĩa chức năng in org) như đặt "end" thành "" để không còn in dòng mới sau khi in xong 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 thức 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 Lower() trên đối tượng chuỗi đó và trả về kết quả (ý tưởng về phương thức chạy trên đối tượng này là một trong những ý tưởng cơ bản tạo nên Lập trình hướng đối tượng, OOP). Dưới đây là một số phương thức chuỗi phổ biến nhất

  • s. thấp hơn (), s. upper() -- trả về phiên bản chữ thường hoặc chữ hoa của chuỗi
  • s. dải () - trả về một chuỗi có khoảng trắng bị xóa khỏi đầu và cuối
  • s. isalpha()/s. isdigit()/s. không gian (). -- kiểm tra xem tất cả các ký tự chuỗi có thuộc các lớp ký tự khác nhau không
  • s. startedwith('khác'), s. endwith('other') -- kiểm tra xem chuỗi bắt đầu hay kết thúc bằng chuỗi khác đã cho
  • s. find('other') -- tìm kiếm chuỗi khác đã cho (không phải 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('old', 'new') -- trả về một chuỗi trong đó tất cả các lần xuất hiện của 'old' đã được thay thế bằng 'new'
  • s. split('delim') -- trả về danh sách các chuỗi con được phân tách bằng dấu phân cách đã cho. Dấu phân cách không phải là 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ố) phân tách trên tất cả các ký tự khoảng trắng
  • s. join(list) -- đối lập với split(), nối 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. e. g. '---'. tham gia (['aaa', 'bbb', 'ccc']) -> aaa---bbb---ccc

Tìm kiếm trên google cho "python str" sẽ dẫn bạn đến con trăn chính thức. các phương thức chuỗi org liệt kê tất cả các phương thức str

Python không có kiểu ký tự riêng. 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 độ dài chuỗi-1 đó, các toán tử ==, <=,. tất cả đều hoạt động như bạn mong đợi, vì vậy hầu như bạn không cần biết rằng Python không có loại "char" vô hướng riêng

Lát chuỗi

Cú pháp "slice" là một cách thuận tiện để chỉ các phần con của chuỗi -- điển hình là các chuỗi và danh sách. Lát s[bắt đầu. end] là các phần tử bắt đầu từ phần đầu và kéo dài đến nhưng không bao gồm phần cuối. Giả sử chúng ta có s = "Xin chào"

0 nghĩa là gì trong chuỗi python?

  • s[1. 4] là 'ell' -- ký tự bắt đầu từ chỉ mục 1 và kéo dài đến nhưng không bao gồm chỉ mục 4
  • s[1. ] là 'ello' -- bỏ qua một trong hai giá trị mặc định của chỉ mục ở đầu hoặc cuối chuỗi
  • S[. ] là 'Xin chào' - bỏ qua cả hai luôn mang lại 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ư chuỗi hoặc danh sách)
  • s[1. 100] là 'ello' -- một chỉ mục quá lớn sẽ bị cắt bớt theo độ dài chuỗi

Các số chỉ mục dựa trên số 0 tiêu chuẩn cho phép dễ dàng truy cập 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 các ký tự ở cuối chuỗi. s[-1] là ký tự cuối cùng 'o', s[-2] là 'l' ký tự tiếp theo, v.v. Số chỉ số âm đếm ngược từ cuối chuỗi

  • s[-1] là 'o' -- ký tự cuối cùng (đầu tiên từ cuối)
  • s[-4] là 'e' -- thứ 4 từ cuối
  • S[. -3] là 'Anh ấy' -- tăng lên nhưng không bao gồm 3 ký tự cuối cùng
  • s[-3. ] là 'llo' -- bắt đầu bằng ký tự thứ 3 tính từ cuối và kéo dài đến cuối chuỗi

Đó là một sự thật rõ ràng về các lát cắt mà đối với bất kỳ chỉ số n nào,

  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. Hay nói 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 toà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ũng hoạt động với danh sách

Định dạng chuỗi

Một điều thú vị mà 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 sẵn để thực hiện việc này là các chuỗi ký tự được định dạng, còn được gọi là "chuỗi f" và gọi str. định dạng()

Chuỗi ký tự được định dạng

Bạn sẽ thường thấy các chuỗi ký tự đượ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 ký tự được định dạng có tiền tố là 'f' (giống 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 dấu ngoặc nhọn '{}' đều được in trực tiếp. Các biểu thức có trong '{}' được in ra bằng cách sử dụng đặc tả định dạng được mô tả trong đặc tả định dạng. Có rất nhiều điều thú vị mà bạn có thể thực hiện với định dạng bao gồm cắt ngắn và chuyển đổi thành ký hiệu khoa học và căn chỉnh trái/phải/giữa

chuỗi f rất hữu ích khi bạn muốn in ra một bảng đố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 cơ sở giống như printf() cũ hơn để kết hợp một chuỗi. Toán tử % lấy một chuỗi định dạng kiểu printf ở bên trái (%d int, %s string, %f/%g floating point) và các giá trị phù hợp trong một bộ ở bên phải (một bộ được tạo từ các giá trị được phân tách bằng

  # % 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 hơ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ỉ tách dòng sau dấu '%' như 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 biệt (về mặt tích cực, đây là lý do tại sao chúng ta không cần nhập dấu chấm phẩy trên mỗi dòng . Để khắc phục điều này, hãy đặt toàn bộ biểu thức trong một tập hợp dấu ngoặc đơn bên ngoài -- khi đó biểu thức được phép trải rộng trên nhiều dòng. Kỹ thuật mã trên các dòng 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 nhiều phần, sau đó nó sẽ tự động nối. Vì vậy, để làm cho dòng này ngắn hơn nữa, chúng ta có thể làm điều này

________số 8

Chuỗi (Unicode so với byte)

Các 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 ký tự) 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 với 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 chuyển qua một trong hai loại chuỗi

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

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

Trong phần đọc tệp, có một ví dụ cho thấy cách mở tệp văn bản bằng một số bảng mã và đọc chuỗi unicode

Tuyên bố nếu

Python không sử dụng { } để đặt 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 đầu dòng/khoảng trắng cho các câu lệnh nhóm. Phép thử boolean cho if không cần phải đặt trong ngoặc đơn (sự khác biệt lớn so với C++/Java) và nó có thể có các mệnh đề *elif* và *else* (dễ nhớ. từ "elif" có cùng độ dài với từ "else")

Any value can be used as an if-test. The "zero" values all count as false: None, 0, empty string, empty list, empty dictionary. There is also a Boolean type with two values: True and False (converted to an int, these are 1 and 0). Python has the usual comparison operations: ==, !=, <, <=, >, >=. Unlike Java and C, == is overloaded to work correctly with strings. The boolean operators are the spelled out words *and*, *or*, *not* (Python does not use the C-style && || !). Here's what the code might look like for a health app providing drink recommendations throughout the day -- notice how each block of then/else statements starts with a : and the statements are grouped by their indentation:

  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 bỏ qua ". " là lỗi cú pháp phổ biến nhất của tôi khi nhập loại mã trên, có thể vì đó là một thứ bổ sung để nhập so với. thói quen C++/Java của tôi. Ngoài ra, đừng đặt kiểm tra boolean trong ngoặc đơn - đó là thói quen của 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 hàm, vòng lặp, v.v. cũng vậy), mặc dù một số người cảm thấy việc sắp xếp mọi thứ trên các dòng riêng biệt sẽ dễ đọc hơn

\0 trong một chuỗi là gì?

'\0' được gọi là Ký tự NULL hoặc dấu kết thúc NULL Nó là ký tự tương đương với số nguyên 0(không) như nó đề cập .

'\ t nghĩa là gì trong Python?

Trong các chuỗi Python, dấu gạch chéo ngược “ ” là một ký tự đặc biệt, còn được gọi là ký tự “escape”. Nó được sử dụng để đại diện cho các ký tự khoảng trắng nhất định. “\t” là tab , “\n” là một dòng mới và “\r” là dấu xuống dòng.

Chuỗi kết thúc null trong Python là gì?

Trong lập trình máy tính, chuỗi kết thúc bằng null là chuỗi ký tự được lưu trữ dưới dạng một mảng chứa các ký tự và kết thúc bằng ký tự null ( .

\N trong chuỗi Python là gì?

Trong Python, \n là một loại ký tự thoát sẽ tạo ra một dòng mới khi được sử dụng .