Làm cách nào để in các chữ cái trong quá khứ bằng python?

Trên trang này. nhận xét với #, chuỗi nhiều dòng với """ """, in nhiều đối tượng, dấu gạch chéo ngược "\" làm ký tự thoát, '\t', '\n', '\r' và '\\'

Bắt đầu

Video Tổng Hợp

  • Hầu hết các câu lệnh in trong đã được nhận xét ban đầu, không được chú thích trong suốt video. Đây là
  • Như đã nêu trong các hướng dẫn trước, hàm print yêu cầu Python hiển thị ngay một chuỗi đã cho sau khi lệnh được thực thi. Để chỉ định một chuỗi cho chức năng in hiển thị, hãy đặt chuỗi đó trong dấu nháy đơn [' '] hoặc dấu nháy kép [" "]. Cả hai tùy chọn đều khả dụng nên bạn vẫn có thể sử dụng dấu ngoặc kép trong chuỗi của mình nếu cần. Bán tại. in "hôm nay bạn thế nào?"
  • Nếu ký hiệu thăng [#] được đặt trước một lệnh hoặc bất kỳ loại chuỗi ký tự nào, lệnh sẽ xuất hiện màu đỏ và Python sẽ bỏ qua nó trong quá trình thực thi mã. Điều này có thể được sử dụng trong Python để cung cấp nhận xét hữu ích cho những người đang xem mã của bạn hoặc để "tắt" một số dòng mã nhất định để kiểm tra lỗi
  • Bao quanh một chuỗi có ba dấu ngoặc kép [""" """] cho phép bạn có bất kỳ sự kết hợp nào giữa dấu ngoặc kép và ngắt dòng trong một chuỗi và Python sẽ vẫn diễn giải chuỗi đó dưới dạng một thực thể duy nhất

Tìm hiểu thêm

  • Bạn có thể chỉ định nhiều chuỗi với câu lệnh in. Chỉ cần tách chúng ra bằng dấu phẩy ',' và chúng sẽ được in với khoảng trắng ở giữa

    >>> print 'apple', 'orange', 'pear'
    apple orange pear 
    

  • 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ự "thoát". Nó được sử dụng để đại diện cho các ký tự khoảng trắng nhất định. "\t" là một tab, "\n" là một dòng mới và "\r" là một xuống dòng

    >>> print 'apple\torange'
    apple	orange 
    >>> print 'apple\norange'
    apple
    orange 
    

  • Ngược lại, đặt trước một ký tự đặc biệt với "\" sẽ biến ký tự đó thành một ký tự thông thường. Cái này gọi là "thoát". Ví dụ: "\'" là ký tự trích dẫn đơn. Do đó, 'Trời đang mưa' là một chuỗi hợp lệ và tương đương với "Trời đang mưa". Tương tự như vậy, '"' có thể được thoát. "\"hello\"" là một chuỗi bắt đầu và kết thúc bằng ký tự trích dẫn kép theo nghĩa đen. Cuối cùng, "\" có thể được sử dụng để tự thoát. "\\" là ký tự gạch chéo ngược theo nghĩa đen
  • Có rất nhiều hàm tiện dụng được định nghĩa trên các chuỗi, được gọi là các phương thức chuỗi. Tìm hiểu về những cái trên substringhood và cả về thao tác case trong hướng dẫn này. Hướng dẫn phần 2 này bao gồm các phương pháp chuỗi để tìm vị trí của một chuỗi con cụ thể và cũng để kiểm tra xem điều kiện nhất định có đúng với mọi ký tự hay không
  • Khi bạn cảm thấy thoải mái với các danh sách [sắp ra mắt], bạn cũng nên xem Tách và nối các chuỗi

Khám phá

Các loại bao gồm các phần nhỏ hơn được gọi là các loại dữ liệu phức hợp. Tùy thuộc vào những gì chúng tôi đang làm, chúng tôi có thể muốn coi một loại dữ liệu phức hợp là một thứ duy nhất hoặc chúng tôi có thể muốn truy cập các phần của nó. Sự mơ hồ này là hữu ích

Toán tử ngoặc đơn chọn một ký tự từ một chuỗi

>>> fruit = "banana"
>>> letter = fruit[1]
>>> print letter

Biểu thức quả[1] chọn ký tự số 1 từ quả. The variable chữ cái đề cập đến kết quả. Khi chúng tôi hiển thị chữ cái , chúng tôi nhận được một bất ngờ.

a

Chữ cái đầu tiên của "banana" không phải là a, unless you are a computer scientist. For perverse reasons, computer scientists always start counting from zero. The 0th letter [ zero-eth ] of "banana"b . Chữ cái đầu tiên [ one-eth ] là a và chữ cái thứ 2 [ two-eth ] là n< . .

Nếu bạn muốn chữ cái 0 của một chuỗi, bạn chỉ cần đặt 0 hoặc bất kỳ biểu thức nào có giá trị 0 trong ngoặc đơn

>>> letter = fruit[0]
>>> print letter
b

Biểu thức trong ngoặc được gọi là chỉ số. Một chỉ mục chỉ định một thành viên của một tập hợp có thứ tự, trong trường hợp này là tập hợp các ký tự trong chuỗi. Chỉ mục cho biết cái nào bạn muốn, do đó có tên. Nó có thể là bất kỳ biểu thức số nguyên nào

7. 2. Chiều dài

Hàm len trả về số ký tự trong một chuỗi.

>>> fruit = "banana"
>>> len[fruit]
6

Để có được chữ cái cuối cùng của một chuỗi, bạn có thể muốn thử một cái gì đó như thế này

length = len[fruit]
last = fruit[length]       # ERROR!

Điều đó không hiệu quả. Nó gây ra lỗi thời gian chạy IndexError. chuỗi chỉ mục ngoài của phạm vi . Lý do là không có chữ cái thứ 6 trong . The reason is that there is no 6th letter in "banana" . Vì chúng ta bắt đầu đếm từ số 0 nên sáu chữ cái được đánh số từ 0 đến 5. Để lấy ký tự cuối cùng, chúng ta phải trừ 1 từ độ dài .

length = len[fruit]
last = fruit[length-1]

Ngoài ra, chúng ta có thể sử dụng chỉ số âm, đếm ngược từ cuối chuỗi. Biểu thức fruit[-1] mang lại chữ cái cuối cùng, fruit[-2] yields the second to last, and so on.

7. 3. Traversal và vòng lặp for loop

Rất nhiều tính toán liên quan đến việc xử lý một chuỗi ký tự tại một thời điểm. Thường thì họ bắt đầu từ đầu, chọn lần lượt từng ký tự, làm điều gì đó với nó và tiếp tục cho đến khi kết thúc. Mô hình xử lý này được gọi là truyền tải. Một cách để mã hóa quá trình truyền tải là sử dụng câu lệnh while .

________số 8

Vòng lặp này duyệt qua chuỗi và tự hiển thị từng chữ cái trên một dòng. Điều kiện vòng lặp là index >> print 'apple\torange' apple orange >>> print 'apple\norange' apple orange 0

Đầu ra của chương trình này là

>>> print 'apple\torange'
apple	orange 
>>> print 'apple\norange'
apple
orange 
1

Tất nhiên, điều đó không hoàn toàn đúng vì Ouack và Quack viết sai chính tả. Bạn sẽ khắc phục điều này như một bài tập dưới đây

7. 4. chuỗi lát

Một chuỗi con của một chuỗi được gọi là một lát. Chọn một lát tương tự như chọn một ký tự

a
0

Toán tử [n. m] trả về một phần của chuỗi từ ký tự thứ n đến ký tự thứ m, bao gồm ký tự đầu tiên nhưng không bao gồm ký tự cuối cùng. Hành vi này là phản trực giác; .

Nếu bạn bỏ qua chỉ mục đầu tiên [trước dấu hai chấm], thì lát bắt đầu ở đầu chuỗi. Nếu bạn bỏ qua chỉ mục thứ hai, lát cắt sẽ đi đến cuối chuỗi. Như vậy

a
1

Bạn nghĩ sao s[. ] có nghĩa là?

7. 5. So sánh chuỗi

Các toán tử so sánh hoạt động trên các chuỗi. Để xem hai chuỗi có bằng nhau không

a
2

Các toán tử so sánh khác rất hữu ích để sắp xếp các từ theo thứ tự từ điển

a
3

Điều này tương tự như thứ tự bảng chữ cái bạn sẽ sử dụng với một từ điển, ngoại trừ tất cả các chữ cái viết hoa đứng trước tất cả các chữ cái viết thường. Kết quả là

a
4

Một cách phổ biến để giải quyết vấn đề này là chuyển đổi chuỗi sang định dạng chuẩn, chẳng hạn như tất cả chữ thường, trước khi thực hiện so sánh. Một vấn đề khó khăn hơn là làm cho chương trình nhận ra rằng ngựa vằn không phải là trái cây

7. 6. Chuỗi là bất biến

Bạn nên sử dụng toán tử [] ở bên trái của phép gán, với ý định thay đổi một ký tự trong một chuỗi. Ví dụ.

a
5

Thay vì sản xuất đầu ra Jello, thế giới. , mã này tạo ra lỗi thời gian chạy TypeError. 'str' đối tượng không hỗ trợ item assignment.

Các chuỗi là bất biến, có nghĩa là bạn không thể thay đổi một chuỗi hiện có. Điều tốt nhất bạn có thể làm là tạo một chuỗi mới là biến thể của chuỗi gốc

a
6

Giải pháp ở đây là nối một chữ cái đầu tiên mới vào một lát lời chào . Thao tác này không ảnh hưởng đến chuỗi gốc.

7. 7. Toán tử in operator

Toán tử in kiểm tra xem một chuỗi có phải là chuỗi con của một chuỗi khác không.

a
7

Lưu ý rằng một chuỗi là một chuỗi con của chính nó

a
8

Kết hợp toán tử in với nối chuỗi bằng cách sử dụng + .

a
9

Kiểm tra chức năng này để xác nhận rằng nó làm những gì chúng tôi muốn nó làm

7. 8. Chức năng tìm function

Chức năng sau đây làm gì?

>>> letter = fruit[0]
>>> print letter
b
0

Theo một nghĩa nào đó, tìm đối lập với [] operator. Instead of taking an index and extracting the corresponding character, it takes a character and finds the index where that character appears. If the character is not found, the function returns -1 .

Đây là ví dụ đầu tiên chúng ta thấy về câu lệnh return bên trong một vòng lặp. Nếu strng[index] == ch , hàm sẽ trả về ngay lập tức, .

Nếu ký tự không xuất hiện trong chuỗi thì chương trình sẽ thoát khỏi vòng lặp bình thường và trả về -1 .

Kiểu tính toán này đôi khi được gọi là chuyển đổi eureka bởi vì ngay khi chúng tôi tìm thấy những gì chúng tôi đang tìm kiếm, chúng tôi có thể khóc Eureka. và ngừng tìm kiếm

7. 9. Vòng lặp và đếm

Chương trình sau đây đếm số lần chữ cái a xuất hiện trong một chuỗi và là một ví dụ khác về mẫu bộ đếm được giới thiệu trong.

>>> letter = fruit[0]
>>> print letter
b
1

7. 10. thông số tùy chọn

Để tìm vị trí xuất hiện ký tự thứ hai hoặc thứ ba trong một chuỗi, chúng ta có thể sửa đổi hàm find , thêm ký tự thứ ba .

>>> letter = fruit[0]
>>> print letter
b
2

Cuộc gọi find2['banana', 'a', 2] now returns 3, the index of the first occurance of ‘a’ in ‘banana’ after index 2. What does find2['banana', 'n', 3] . find2 works.

Tốt hơn hết, chúng ta có thể kết hợp findfind2 .

>>> letter = fruit[0]
>>> print letter
b
3

Cuộc gọi find['banana', 'a', 2] to this version of find behaves just like find2, while in the call find['banana', 'a'], start will be set to the default value of 0.

Thêm một tham số tùy chọn khác vào tìm làm cho nó tìm kiếm cả tiến và lùi.

>>> letter = fruit[0]
>>> print letter
b
4

Truyền giá trị len[strng]-1 để bắt đầu và -1 for step will make it search toward the beginning of the string instead of the end. Note that we needed to check for a lower bound for index trong vòng lặp while cũng như giới hạn trên để phù hợp với thay đổi này.

7. 11. Mô-đun chuỗi module

Mô-đun chuỗi chứa các hàm hữu ích để thao tác với chuỗi. Như thường lệ, chúng tôi phải nhập mô-đun trước khi có thể sử dụng nó.

>>> letter = fruit[0]
>>> print letter
b
5

Để xem bên trong nó có gì, hãy sử dụng hàm dir với tên mô-đun làm đối số.

>>> letter = fruit[0]
>>> print letter
b
6

sẽ trả về danh sách các mục bên trong mô-đun chuỗi

['Mẫu', '_TemplateMetaclass', '__builtins__', '__doc__',>> letter = fruit[0] >>> print letter b 7

chuỗi. chữ số là một chuỗi, chúng ta có thể in nó ra để xem nó chứa gì.

>>> letter = fruit[0]
>>> print letter
b
8

Không ngạc nhiên, nó chứa mỗi chữ số thập phân

chuỗi. find là một hàm thực hiện nhiều việc tương tự như hàm chúng ta đã viết. Để tìm hiểu thêm về nó, chúng ta có thể in ra chuỗi tài liệu của nó, __doc__ , chứa tài liệu về hàm.

>>> letter = fruit[0]
>>> print letter
b
9

Các tham số trong ngoặc vuông là các tham số tùy chọn. Chúng ta có thể sử dụng chuỗi. tìm nhiều như chúng ta đã làm tìm .

>>> fruit = "banana"
>>> len[fruit]
6
0

Ví dụ này minh họa một trong những lợi ích của mô-đun — chúng giúp tránh xung đột giữa tên của hàm dựng sẵn và hàm do người dùng định nghĩa. Bằng cách sử dụng ký hiệu dấu chấm, chúng tôi có thể chỉ định phiên bản tìm mà chúng tôi muốn.

Thực ra, chuỗi. find tổng quát hơn phiên bản của chúng tôi. nó có thể tìm thấy các chuỗi con, không chỉ các ký tự.

>>> fruit = "banana"
>>> len[fruit]
6
1

Giống như của chúng tôi, nó cần một đối số bổ sung chỉ định chỉ mục mà tại đó nó sẽ bắt đầu

>>> fruit = "banana"
>>> len[fruit]
6
2

Không giống như của chúng tôi, tham số tùy chọn thứ hai của nó chỉ định chỉ mục mà tìm kiếm sẽ kết thúc

>>> fruit = "banana"
>>> len[fruit]
6
3

Trong ví dụ này, tìm kiếm không thành công vì chữ b không xuất hiện trong phạm vi chỉ mục từ 1 đến 2 [not including 2].

7. 12. phân loại nhân vật

Việc kiểm tra một ký tự và kiểm tra xem đó là chữ hoa hay chữ thường, hoặc đó là ký tự hay chữ số thường rất hữu ích. Mô-đun chuỗi cung cấp một số hằng hữu ích cho các mục đích này. Một trong số đó, chuỗi. chữ số , chúng ta đã thấy.

Chuỗi chuỗi. chữ thường chứa tất cả các chữ cái mà hệ thống coi là chữ thường. Tương tự, chuỗi. chữ hoa chứa tất cả các chữ hoa. Hãy thử những điều sau đây và xem những gì bạn nhận được.

>>> fruit = "banana"
>>> len[fruit]
6
4

Chúng ta có thể sử dụng các hằng số này và tìm để phân loại ký tự. Ví dụ: nếu find[lowercase, ch] trả về một giá trị khác với -1, then ch must be lowercase:

>>> fruit = "banana"
>>> len[fruit]
6
5

Ngoài ra, chúng ta có thể tận dụng toán tử in .

>>> fruit = "banana"
>>> len[fruit]
6
6

Như một giải pháp thay thế khác, chúng ta có thể sử dụng toán tử so sánh

>>> fruit = "banana"
>>> len[fruit]
6
7

Nếu ch nằm giữa a và z thì đó phải là chữ thường.

Một hằng số khác được xác định trong mô-đun chuỗi có thể làm bạn ngạc nhiên khi in ra.

>>> fruit = "banana"
>>> len[fruit]
6
8

Ký tự khoảng trắng di chuyển con trỏ mà không in bất cứ thứ gì. Họ tạo khoảng trắng giữa các ký tự có thể nhìn thấy [ít nhất là trên giấy trắng]. Hằng số chuỗi. khoảng trắng chứa tất cả các ký tự khoảng trắng, bao gồm dấu cách, tab [ \t ] và dòng mới [ \n].

Có các chức năng hữu ích khác trong mô-đun chuỗi nhưng cuốn sách này không nhằm mục đích hướng dẫn tham khảo. Mặt khác, Tham chiếu thư viện Python là. Cùng với vô số tài liệu khác, nó có sẵn từ trang web Python, http. //www. con trăn. tổ chức.

7. 13. Định dạng chuỗi

Cách mạnh mẽ và ngắn gọn nhất để định dạng chuỗi trong Python là sử dụng toán tử định dạng chuỗi, % , cùng với định dạng chuỗi của Python . Để xem nó hoạt động như thế nào, hãy bắt đầu với một vài ví dụ.

>>> fruit = "banana"
>>> len[fruit]
6
9

Cú pháp cho thao tác định dạng chuỗi trông như thế này

length = len[fruit]
last = fruit[length]       # ERROR!
0

Nó bắt đầu bằng định dạng chứa một chuỗi ký tự và thông số kỹ thuật chuyển đổi. Thông số kỹ thuật chuyển đổi bắt đầu bằng toán tử % . Theo sau chuỗi định dạng là một % và sau đó là một chuỗi giá trị, một giá trị cho mỗi thông số chuyển đổi, được phân tách bằng dấu phẩy và đặt trong dấu ngoặc đơn. Dấu ngoặc đơn là tùy chọn nếu chỉ có một giá trị duy nhất.

Trong ví dụ đầu tiên ở trên, có một thông số chuyển đổi duy nhất, %s , cho biết một chuỗi. Giá trị duy nhất, "Arthur" , ánh xạ tới giá trị đó và không được đặt trong dấu ngoặc đơn.

Trong ví dụ thứ hai, tên có giá trị chuỗi, "Alice", and age has integer value, 10. These map to the two converstion specifications, %s%d . d trong thông số chuyển đổi thứ hai cho biết giá trị là một số nguyên thập phân.

Trong ví dụ thứ ba, các biến n1n2 có . Có bốn thông số kỹ thuật chuyển đổi trong chuỗi định dạng. ba 4 and 5 respectively. There are four converstion specifications in the format string: three %d và một %f . f chỉ ra rằng giá trị phải được biểu thị dưới dạng số dấu phẩy động. Bốn giá trị ánh xạ tới bốn thông số kỹ thuật chuyển đổi là. 2**10 , n1 , n2, and n1 * n2.

s , df are all the conversion types we will need for this book. To see a complete list, see the String Formatting Operations section of the Python Library Reference.

Ví dụ sau minh họa tiện ích thực sự của định dạng chuỗi

length = len[fruit]
last = fruit[length]       # ERROR!
1

Chương trình này in ra một bảng lũy ​​thừa khác nhau của các số từ 1 đến 10. Ở dạng hiện tại, nó dựa vào ký tự tab [ \t ] để căn chỉnh các cột giá trị, nhưng điều này bị hỏng khi các giá trị trong bảng nhận được .

length = len[fruit]
last = fruit[length]       # ERROR!
2

Một giải pháp khả thi là thay đổi độ rộng của tab, nhưng cột đầu tiên đã có nhiều không gian hơn mức cần thiết. Giải pháp tốt nhất là đặt chiều rộng của từng cột một cách độc lập. Như bạn có thể đoán bây giờ, định dạng chuỗi cung cấp giải pháp

length = len[fruit]
last = fruit[length]       # ERROR!
3

Chạy phiên bản này tạo ra đầu ra sau

length = len[fruit]
last = fruit[length]       # ERROR!
4

Các - sau mỗi % trong thông số chuyển đổi . Các giá trị số chỉ định độ dài tối thiểu, vì vậy %-13d là một số được căn trái, rộng ít nhất 13 ký tự.

7. 14. Tóm tắt và bài tập đầu tiên

Chương này giới thiệu rất nhiều ý tưởng mới. Phần tóm tắt và tập hợp các bài tập sau đây có thể hữu ích trong việc ghi nhớ những gì bạn đã học

lập chỉ mục [ [] ]Truy cập một ký tự đơn trong chuỗi bằng cách sử dụng vị trí của nó [bắt đầu từ 0]. Ví dụ. 'This'[2] đánh giá thành 'i' . hàm độ dài [ len ]Trả về số ký tự trong một chuỗi. Ví dụ. len['happy'] đánh giá thành 5 . cho truyền tải vòng lặp [ for ]

Duyệt qua một chuỗi có nghĩa là truy cập từng ký tự trong chuỗi, từng ký tự một. Ví dụ, vòng lặp for sau đây

Chủ Đề