Những ký tự đặc biệt nào không được phép trong Python?

Ký tự đặc biệt là ký tự không phải là ký tự chữ cái hoặc số. Dấu chấm câu và các ký hiệu khác là ví dụ về các ký tự đặc biệt. Không giống như các ký tự chữ và số, các ký tự đặc biệt có thể có nhiều công dụng. Để tránh sự cố, một số ký tự đặc biệt cũng có thể cần được thoát hoặc mã hóa khi được sử dụng trong dòng lệnh và ngôn ngữ lập trình

Ví dụ: khi tạo một trang web bằng HTML, các giá trị thuộc tính được đặt trong dấu ngoặc kép

Khi xác định một thuộc tính trong HTML, ký hiệu dấu ngoặc kép có một ý nghĩa đặc biệt. nó đánh dấu sự bắt đầu hoặc kết thúc của giá trị thuộc tính. Do đó, để bao gồm một trích dẫn kép như một phần của giá trị thuộc tính, phải sử dụng mã ký tự HTML đặc biệt mở rộng

import re

def find[string]:
    special_char=re.compile['[@_!$%^&*[]?/\|}{~:]#']
    
    if special_char.search[string] == None:
        return "string is accepted"
    else:
        return "string not accpeted"
   

s="Hello15"
print[s]
print[find[s]]
4 để thay thế

Mẹo

Trong HTML, dấu ngoặc kép chỉ được yêu cầu xung quanh các thuộc tính có giá trị văn bản. Nếu giá trị thuộc tính là một số, dấu ngoặc kép không bắt buộc. Ví dụ:

import re

def find[string]:
    special_char=re.compile['[@_!$%^&*[]?/\|}{~:]#']
    
    if special_char.search[string] == None:
        return "string is accepted"
    else:
        return "string not accpeted"
   

s="Hello15"
print[s]
print[find[s]]
5 và
import re

def find[string]:
    special_char=re.compile['[@_!$%^&*[]?/\|}{~:]#']
    
    if special_char.search[string] == None:
        return "string is accepted"
    else:
        return "string not accpeted"
   

s="Hello15"
print[s]
print[find[s]]
6 đều là thuộc tính hợp lệ. Tuy nhiên, bạn nên bao quanh tất cả các giá trị thuộc tính HTML trong dấu ngoặc kép để dễ đọc và nhất quán, ngay cả khi giá trị là một số

Ghi chú

Các ký tự đặc biệt có thể được sử dụng trong các biểu mẫu trực tuyến vì những lý do độc hại nếu chúng không được thoát hoặc xử lý đúng cách. Một số nhà phát triển có thể không hỗ trợ các ký tự đặc biệt trong biểu mẫu trực tuyến của họ

Bàn phím ký tự đặc biệt

Dưới đây là danh sách các ký tự đặc biệt có trên chữ U điển hình. S. bàn phím, với các liên kết đến các trang liên quan của họ

Mẹo

Nếu đang sử dụng Microsoft Windows, bạn có thể sử dụng tiện ích Character Map để chèn các ký tự đặc biệt không có sẵn trên bàn phím, chẳng hạn như dấu kiểm hoặc ký hiệu độ

Trong hướng dẫn này, chúng ta sẽ học cách kiểm tra xem một chuỗi có chứa ký tự đặc biệt nào không bằng Python. Chuỗi trong Python là một chuỗi các ký tự được bao bọc bên trong dấu nháy đơn, kép hoặc ba. Ký tự đặc biệt là ký tự không phải là bảng chữ cái hay số. Các ký hiệu, dấu trọng âm và dấu chấm câu được coi là ký tự đặc biệt

[ @ _. # $ % ^ & * [ ] < > ? . { } ~. ] là một số ký tự đặc biệt

Chúng ta phải viết một chương trình sẽ kiểm tra các ký tự đặc biệt như vậy trong chuỗi đã cho và sẽ chỉ chấp nhận những chuỗi không có bất kỳ ký tự đặc biệt nào

Nhìn vào các ví dụ để hiểu định dạng đầu vào và đầu ra

Đầu vào. "Xin chào. "

đầu ra. chuỗi không được chấp nhận

Đầu vào. "xin chào123"

đầu ra. chuỗi được chấp nhận

Để thực hiện tác vụ này, chúng tôi sẽ tạo một biểu thức chính quy bằng cách sử dụng compile[] sẽ có tất cả các ký tự đặc biệt mà chúng tôi không muốn trong chuỗi của mình. Sau đó, sử dụng phương thức search[], chúng ta sẽ tìm kiếm xem có ký tự đặc biệt nào trong chuỗi hay không. Nếu không tìm thấy ký tự nào, phương thức search[] sẽ trả về Không và sau đó chúng ta có thể in ra rằng chuỗi được chấp nhận

thuật toán

Bước 1- Nhập lại mô-đun

Bước 2- Định nghĩa hàm kiểm tra ký tự đặc biệt

Bước 3- Tạo biểu thức chính quy của tất cả các ký tự đặc biệt

Bước 4- Kiểm tra xem biểu thức này có trong chuỗi không

Bước 5- Nếu không tìm thấy trả về chuỗi được chấp nhận

Bước 6- Khác trả lại rằng chuỗi được chấp nhận

Chương trình Python

Trong chương trình này, chúng ta đã sử dụng mô đun re để sử dụng phương thức compile[] và search[]. Chúng tôi sẽ nhập mô-đun re vào chương trình của chúng tôi. Mô-đun Python lại cung cấp hỗ trợ đầy đủ cho các biểu thức chính quy trong Python

import re

def find[string]:
    special_char=re.compile['[@_!$%^&*[]?/\|}{~:]#']
    
    if special_char.search[string] == None:
        return "string is accepted"
    else:
        return "string not accpeted"
   

s="Hello15"
print[s]
print[find[s]]


Chuỗi Hello15
được chấp nhận

Phần kết luận

Trong hướng dẫn này, chúng ta đã biết cách kiểm tra xem một chuỗi có ký tự đặc biệt hay không và chỉ chấp nhận những chuỗi không có bất kỳ ký tự đặc biệt nào

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. Cá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 trong bản dựng để 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 khác nhau để xóa 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. Bất biến trong trường hợp này 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

Các phương thức sau có thể được sử dụng để 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[] funtion them 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 ". tham gia" trong ví dụ trên được sử dụng để nối tất cả các phần tử từ danh sách để tạo một chuỗi và có 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 removal of special characters
print["string after conversion:",normal_string]

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

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

________số 8

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

Biểu thức chính quy được sử dụng để tạo thành một mẫu có thể được sử dụng để tìm kiếm các ký tự đặc biệt trong một chuỗi. Để sử dụng biểu thức chính quy trong Python, chúng ta phải nhập gói re. 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ự sẽ được thay thế bằng các ký tự khớp với mẫu biểu thức chính quy
  • Xâu là xâu mà việc tìm kiếm, thay thế các ký tự phải được thực hiện
  • Số lượng mô tả số lượng thay thế tối đa có thể được thực hiện sau khi tìm thấy 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 thực hiệ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ỉ được sử dụng để 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ụ [],

0

[^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à,

1

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à,

2

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 phải xóa khỏi chuỗi được lấy trong 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ử của chuỗi và hàm lambda được sử dụng để kiểm tra xem ký tự có phải là ký tự đặc biệt có trong danh sách hay 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à,

1

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[] trong Python
  • 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ố, thì 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[] được sử dụng để 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ảng này được hàm translate[] sử dụng để xóa tất cả các ký tự đặc biệt khỏi một 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

Các ký tự không hợp lệ trong Python là gì?

Để chèn các ký tự không hợp lệ vào một chuỗi, hãy sử dụng ký tự thoát. . Ví dụ

Những ký tự đặc biệt nào được phép trong Python?

Số nhận dạng có thể là sự kết hợp của chữ thường [a đến z] hoặc chữ hoa [A đến Z] hoặc chữ số [0 đến 9] hoặc dấu gạch dưới [_].

Nhân vật nào không đặc biệt?

Ký tự đặc biệt là ký tự không phải là ký tự chữ cái hoặc số . Dấu chấm câu và các ký hiệu khác là ví dụ về các ký tự đặc biệt. Không giống như các ký tự chữ và số, các ký tự đặc biệt có thể có nhiều công dụng.

Các ký tự đặc biệt có được phép làm biến trong Python không?

Quy tắc cho biến Python. Tên biến phải bắt đầu bằng một chữ cái hoặc ký tự gạch dưới. Tên biến không được bắt đầu bằng số. Tên biến chỉ có thể chứa các ký tự chữ và số và dấu gạch dưới [A-z, 0-9 và _ ]

Chủ Đề