Khoảng trắng có phải là ký tự đặc biệt trong python không?

Việc xóa các ký tự cụ thể khỏi một chuỗi luôn là một thách thức. Logic cụ thể phải được triển khai để xóa một ký tự cụ thể khỏi chuỗi trong các ngôn ngữ lập trình khác nhau. Ngôn ngữ lập trình python cung cấp các hàm dựng sẵn để xóa tất cả các ký tự đặc biệt khỏi chuỗi

Phạm vi

  • Bài viết này đề cập đến khái niệm cơ bản về sửa đổi chuỗi trong python
  • Bài viết này cũng khám phá năm phương pháp để loại bỏ các ký tự đặc biệt khỏi một chuỗi trong python

Làm cách nào để xóa các ký tự đặc biệt khỏi chuỗi trong Python?

Trong python, chuỗi là đối tượng bất biến. Trong trường hợp này, tính không thay đổi ngụ ý rằng giá trị của một chuỗi không thể được sửa đổi sau khi gán nhưng có thể được gán lại cho một giá trị mới. Python là ngôn ngữ cấp cao và cung cấp nhiều hướng dẫn thao tác chuỗi để thực hiện các thay đổi đối với chuỗi. Chúng ta có thể sử dụng các hướng dẫn thao tác chuỗi này để xóa các ký tự đặc biệt khỏi chuỗi trong python

Chúng ta có thể sử dụng các phương pháp sau để xóa các ký tự đặc biệt khỏi chuỗi trong python,

  • Phương thức isalnum()
  • Sử dụng Biểu thức chính quy (Regex) trong python
  • Phương thức thay thế()
  • Phương thức lọc()
  • Phương thức dịch()

Chúng ta sẽ xem cách sử dụng tất cả các phương thức này để xóa các ký tự đặc biệt khỏi chuỗi trong python với các ví dụ trong các phần sau

Phương pháp 1. Sử dụng str. Phương thức isalnum()

chuỗi. Phương thức isalnum() trả về True nếu tất cả các ký tự trong chuỗi là chữ cái hoặc số và trả về False nếu tìm thấy bất kỳ ký tự đặc biệt nào trong chuỗi. Chúng ta có thể sử dụng thuộc tính này để xóa tất cả các ký tự đặc biệt khỏi chuỗi trong python. Đoạn mã sau minh họa điều này,

# String with special characters 
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Create a list with normal characters using the isalnum() method
# use the join() function to convert the list to string
normal_string="".join(ch for ch in special_string if ch.isalnum())
# print the normal string 
print("string after conversion:",normal_string)
  • Các ". join" trong ví dụ trên được sử dụng để nối tất cả các phần tử trong danh sách, để tạo một chuỗi với cú pháp sau,

Iterable có thể là một list dictionary hoặc tuple và trình kết nối thuộc loại chuỗi và được chèn vào giữa mọi phần tử của iterable để tạo một chuỗi mới

  • Char cho char trong special_string if char. isalnum() tạo danh sách các ký tự bình thường bằng cách thực hiện phương thức isalnum() trên từng ký tự của chuỗi một cách riêng biệt
  • Trình tạo danh sách được sử dụng trong ví dụ trên có thể được đơn giản hóa như sau,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)

Đoạn mã trên là phiên bản đơn giản hóa của ví dụ trước được sử dụng để xóa các ký tự đặc biệt khỏi chuỗi trong python. sample_list là danh sách các ký tự thông thường được chọn bằng hàm isalnum()

Đối với cả hai ví dụ, đầu ra sẽ là,

String before conversion: spe@#$ci87al*&
string after conversion: speci87al

Phương pháp 2. Sử dụng thay thế()

Phương thức thay thế () trong python có thể được sử dụng để xóa các ký tự đặc biệt được chỉ định khỏi chuỗi. Cú pháp của phương thức replace() là,

string.replace(char_to_be_replaced,char_to_be_replaced_with)

Phương thức replace() thay thế một ký tự trong chuỗi bằng một ký tự khác. Không có tác dụng của phương thức thay thế () nếu không tìm thấy ký tự được thay thế trong chuỗi. Sử dụng thuộc tính này, chúng ta có thể xóa các ký tự đặc biệt cụ thể khỏi chuỗi. Ví dụ sau đây minh họa điều này,

# String with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# A list of special_characters to be removed
special_characters=['@','#','$','*','&']
normal_string=special_string
for i in special_characters:
# Replace the special character with an empty string
    normal_string=normal_string.replace(i,"")
# Print the string after the removal of special characters
print("string after conversion:",normal_string)

Trong ví dụ trên, các ký tự đặc biệt trong chuỗi được thay thế bằng một ký tự trống bằng vòng lặp for lặp lại tất cả các ký tự đặc biệt sẽ bị xóa khỏi danh sách

Đầu ra cho ví dụ trên là,

String before conversion:  spe@#$ci87al*&
string after conversion: speci87al

Phương pháp 3. Sử dụng biểu thức chính quy

Các biểu thức chính quy tạo thành một mẫu mà chúng ta có thể sử dụng để tìm kiếm các ký tự đặc biệt trong một chuỗi. Chúng ta phải nhập gói re để sử dụng các biểu thức chính quy trong Python. Thuộc tính này được sử dụng trong các hàm để xóa các ký tự đặc biệt khỏi chuỗi trong python. Gói re cung cấp cho chúng ta nhiều phương thức để sử dụng với biểu thức chính quy. Để xóa các ký tự đặc biệt khỏi chuỗi trong python, chúng ta có thể sử dụng lại. phương thức phụ(). Phương thức này có cú pháp như sau,

re.sub(regex_pattern,replace_char,string, count, flags)
  • regex_potype là mẫu biểu thức chính quy được sử dụng để khớp các ký tự trong một chuỗi
  • replace_char là ký tự chúng ta sẽ thay thế bằng các ký tự phù hợp với mẫu biểu thức chính quy
  • Chuỗi là chuỗi mà chúng ta tìm kiếm và thay thế các ký tự
  • Số lượng mô tả số lần thay thế tối đa mà chúng tôi có thể thực hiện sau khi tìm các ký tự phù hợp bằng cách sử dụng mẫu biểu thức chính quy
  • Các cờ đại diện cho các cờ regex được sử dụng để sửa đổi cách chúng ta nên tìm kiếm. Một số fags hữu ích là,
    • lại. IGNORECASE được sử dụng để tìm cả ký tự chữ thường và chữ hoa
    • lại. ASCII được sử dụng để chỉ tìm các ký tự ASCII
    • lại. MULTILINE cũng có thể được sử dụng để tạo các ký hiệu ^ và $ để khớp với các dòng. Thông thường, các ký hiệu ^ và $ chỉ khớp với phần đầu và phần cuối của từ

Ví dụ sau minh họa cách chúng ta có thể xóa tất cả các ký tự đặc biệt khỏi một chuỗi trong python bằng cách sử dụng lại. phương thức phụ (),

# Import the re module
import re
# string with special characters 
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
#using regular expression with the sub() method
normal_string =re.sub("[^A-Z]", "", special_string,0,re.IGNORECASE)
print("String after conversion: ",normal_string)

[^A-Z] được sử dụng để tìm tất cả các ký tự không nằm trong khoảng từ A đến Z. Ở đó. Cờ IGNORECASE đã được sử dụng để áp dụng mẫu biểu thức chính quy cho cả chữ thường và chữ hoa. Ký tự phù hợp với mẫu được thay thế bằng một chuỗi rỗng và cuối cùng, chuỗi mới đã loại bỏ các ký tự đặc biệt được trả về bởi hàm re. phương thức phụ(). Đối số thứ ba, số lượng được cung cấp giá trị 0 để khớp với tất cả các ký tự theo biểu thức chính quy

Đối số mặc định cho tham số đếm và cờ là 0. Trong trường hợp tham số đếm, giá trị mặc định là 0 cho biết rằng hàm phải khớp với tất cả các trường hợp và 0 trong tham số cờ cho biết rằng không có cờ nào được sử dụng

Đầu ra là,

________số 8_______

Một số mẫu biểu thức chính quy khác có thể xóa các ký tự đặc biệt khỏi chuỗi trong python là,

  • /[^\w\s]/gi
  • \W+ - mẫu này cũng bao gồm các số trong kết quả
  • [@#$*&87]

Phương pháp 4. Sử dụng bộ lọc()

Phương pháp bộ lọc được sử dụng để lọc một lần lặp theo các điều kiện được đưa ra trong hàm. Thuộc tính này được sử dụng để xóa các ký tự đặc biệt khỏi chuỗi trong python. Cú pháp của phương thức filter() là,

filter(function, iterable)

Hàm bộ lọc trả về một lần lặp với kết quả được lọc. Chúng ta có thể sử dụng phương thức filter() với hàm isalnum() để xóa tất cả các ký tự đặc biệt khỏi chuỗi. Đoạn mã sau minh họa điều này,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)
0

Trong ví dụ trên, hàm lọc sẽ gọi hàm isalnum() cho mọi ký tự của chuỗi_đặc_biệt và sẽ trả về một danh sách với tất cả các ký tự đặc biệt đã bị xóa. Sau đó, danh sách được chuyển đổi thành một chuỗi bằng cách sử dụng hàm join()

Phương thức filter() cũng có thể được sử dụng với hàm lambda để xóa các ký tự đặc biệt cụ thể khỏi chuỗi. Hãy để chúng tôi xem một ví dụ về cách thực hiện điều này trong python,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)
1

Trong ví dụ trên, các ký tự đặc biệt mà chúng ta phải xóa khỏi chuỗi được lấy trong một danh sách có tên là ký tự đặc biệt. Hàm filter() được sử dụng để lặp qua từng phần tử chuỗi. Và hàm lambda dùng để kiểm tra ký tự có phải là ký tự đặc biệt không. Nếu có một ký tự đặc biệt, hàm lambda sẽ trả về false và ký tự đó sẽ bị loại khỏi kết quả. Phương pháp này loại bỏ tất cả các ký tự đặc biệt khỏi một chuỗi trong python

Đầu ra cho các ví dụ trên là,

________số 8_______

Phương pháp 5. Sử dụng dịch()

Phương thức translate() sử dụng từ điển hoặc bảng ánh xạ để thay thế tất cả các ký tự có trong các vị trí chính của bảng bằng các ký tự có trong vị trí giá trị của bảng. Thuộc tính này được sử dụng để xóa các ký tự đặc biệt khỏi chuỗi trong python

Cú pháp của phương thức translate() là,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)
3
  • Tham số đầu tiên là một bảng ánh xạ được tạo bằng hàm maketrans()
  • Tham số thứ hai là tùy chọn và đại diện cho các ký tự sẽ bị xóa khỏi chuỗi đang được sửa đổi

Cú pháp tạo bảng với hàm maketrans() là,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)
4

Tham số thứ hai và thứ ba là tùy chọn. Từ khóa str dùng để chỉ một chuỗi trong python

  • Nếu có một đối số, thì nó phải là một từ điển kiểu dict
  • Nếu có hai đối số, thì cả hai phải thuộc loại,str và phải có cùng độ dài. Hàm maketrans() sẽ ánh xạ mọi ký tự trong chuỗi đầu tiên tới mọi ký tự trong chuỗi thứ hai
  • Nếu có ba đối số, các ký tự trong đối số thứ ba sẽ được ánh xạ tới giá trị của Không có

Ví dụ sau minh họa cách tạo bảng ánh xạ bằng cách sử dụng hàm maketrans() với hai đối số,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)
5

Ví dụ trên tạo một từ điển hoặc bảng với mỗi ký tự của chuỗi đầu tiên được ánh xạ tới các ký tự của chuỗi thứ hai. Đầu ra cho ví dụ trên sẽ là,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)
6

Phương thức maketrans() lưu các ký tự dưới dạng giá trị ASCII tương ứng của chúng. Ví dụ: giá trị ASCII của h và b lần lượt là 104 và 98

Hãy cho chúng tôi xem cách sử dụng bảng ánh xạ này được tạo bằng hàm maketrans() để xóa các ký tự đặc biệt cụ thể khỏi một chuỗi trong python,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)
7
  • chuỗi. dấu chấm câu là một chuỗi có tất cả các ký tự đặc biệt. Điều này được sử dụng để tạo một từ điển các ký tự đặc biệt làm khóa và giá trị trống làm giá trị
  • Phương thức maketrans() được sử dụng để tạo bảng từ từ điển đã tạo
  • Cuối cùng, phương thức translate() loại bỏ các ký tự đặc biệt bằng cách thay thế các ký tự đặc biệt bằng các giá trị trống và trả về chuỗi mới

Note: The value of string.puntuation is ```!"#$%&'()*+, -./:;<=>?@[]^_{|}~

Đầu ra của ví dụ trên sẽ là,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)
8

Để xóa tất cả các ký tự đặc biệt khỏi một chuỗi trong python, có thể sử dụng mã python sau,

# A string with special characters
special_string="spe@#$ci87al*&"
print("String before conversion: ",special_string)
# Declaring a list
sample_list=[]
# Iterate over the string using a for loop
for i in special_string:
# Check if the character in the list is not special
    if i.isalnum():
# If the character is not special, add it to list
        sample_list.append(i)
# Join the elements in the list to create a string
normal_string="".join(sample_list)
print("string after conversion:",normal_string)
9

Trong ví dụ này, chuỗi. dấu chấm câu được đưa ra làm đối số thứ ba cho hàm maketrans(), do đó tất cả các ký tự trong chuỗi. dấu chấm câu sẽ được ánh xạ tới Non. Bảng được tạo là,

String before conversion: spe@#$ci87al*&
string after conversion: speci87al
0

Số ở vị trí phím biểu thị giá trị ASCII của các ký tự đặc biệt. Bản dịch sử dụng hàm table() này để xóa tất cả các ký tự đặc biệt khỏi chuỗi trong python

Khi gọi hàm translate() với bảng này, các ký tự đặc biệt sẽ bị xóa bằng cách thay thế chúng bằng các ký tự trống

Khoảng trắng có phải là ký tự đặc biệt không?

Các ký tự dấu cách, tab, xuống dòng (dòng mới), xuống dòng, nạp biểu mẫu và tab dọc được gọi là "ký tự khoảng trắng" vì chúng có cùng mục đích như khoảng cách giữa các từ và dòng trên trang in — chúng giúp việc đọc dễ dàng hơn

Ký tự đặc biệt trong Python là gì?

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. 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.

Python có bỏ qua khoảng trắng không?

Các ngôn ngữ khác hầu như bỏ qua khoảng trắng, Python thì không .

Mã ký tự cho khoảng trắng là gì?

Infra Living Standard định nghĩa năm ký tự là "khoảng trắng ASCII". U+0009 TAB, U+000A LF, U+000C FF, U+000D CR và U+0020 SPACE .