Chuyển đổi số sang Unicode Python

Trong bài viết trước, chúng ta đã làm quen với Unicode và các phương thức xử lý chuỗi Unicode đầu vào, các cách xử lý và chuyển đổi chúng thành dạng có thể đọc được – đối tượng chuỗi trong Python

Hãy xem xét các cách chuyển đổi sang các loại dữ liệu đầu ra khác và áp dụng các mã hóa khác nhau cho chúng

Xây dựng vấn đề

Giả sử chúng ta cần gửi dữ liệu ở dạng ký tự được biểu diễn dưới dạng số nguyên int

lệnh chức năng

Hàm tích hợp ord[] lấy một ký tự chuỗi Unicode làm đối số và trả về một int, giá trị của điểm mã Unicode

A = '\u0048'
>>>print[ord[A]]
# 72

Nếu đối số bao gồm hai hoặc nhiều ký tự, TypeError sẽ xuất hiện

B = '\u0048u0065u006Cu006Cu006F'
>>>print[ord[B]]
# TypeError: ord[] expected a character, but string of length 5 found

Để tránh điều này, hãy sử dụng một trình tạo danh sách kết hợp với hàm map, đối số đầu tiên là hàm int và đối số thứ hai là một đối tượng hỗn hợp có thể lặp lại – trong trường hợp của chúng ta là một danh sách

>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]

Kiểm tra kiểu dữ liệu

>>>B_list = list[map[int, [ord[i] for i in B]]]
>>>print[type[B_list{0]]]
# 

Bạn có thể sử dụng vòng lặp for và kiểm tra ngay kiểu dữ liệu của từng ký tự

>>>for i in B:
   	print[ord[i], type[ord[i]], end=' ']
# 72 
# 101 
# 108 
# 108 
# 111 

Python Chuyển đổi Unicode thành Float

Tương tự như nhiệm vụ được mô tả ở trên, đôi khi cần phải chuyển đổi chuỗi Unicode thành số float

lệnh chức năng

Sử dụng ord[], nhưng đã gói nó bằng hàm float, chúng ta sẽ nhận được kết quả mong muốn, miễn là độ dài của chuỗi Unicode không vượt quá một ký tự

A = '\u0048'
>>>print[float[ord[A]]]
# 72.0

Nếu đối số bao gồm hai hoặc nhiều ký tự, TypeError sẽ được đưa ra, nhưng chúng ta đã biết cách tránh nó – chúng ta sẽ sử dụng phương thức list

>>>print[list[map[float, [ord[i] for i in B]]]]
# [72.0, 101.0, 108.0, 108.0, 111.0]

Hoặc chúng ta có thể sử dụng vòng lặp for và kiểu dữ liệu của mỗi ký tự sẽ là float, vì chúng ta đã chỉ định rõ ràng để chuyển đổi sang kiểu này

Trong hướng dẫn này, bạn sẽ học cách sử dụng các hàm

>>>for i in B:
   	print[ord[i], type[ord[i]], end=' ']
# 72 
# 101 
# 108 
# 108 
# 111 
7 và
# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
0 của Python để cho phép bạn làm việc tốt hơn với Unicode. Tiêu chuẩn Unicode đã thay thế nhiều bảng mã khó hiểu và được sử dụng để biểu thị từng ký tự [bao gồm cả biểu tượng cảm xúc] bằng một số

Hàm

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
1 trong Python chuyển đổi một ký tự thành một số nguyên đại diện cho mã Unicode của ký tự. Tương tự, hàm chr[] chuyển một ký tự mã Unicode thành chuỗi tương ứng

Bạn sẽ tìm hiểu nhanh về Unicode và cách các ký tự chuỗi có thể được biểu diễn theo những cách khác nhau trong Python. Sau đó, bạn sẽ tìm hiểu cách hoạt động của hàm

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
2 và
# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
1 trong Python, cho cả ký tự đơn và ký tự nhiều ký tự

Mục lục

  • Unicode là gì và nó được sử dụng như thế nào trong Python?
  • Hàm ord[] trong Python. Unicode sang số nguyên
    • Truyền nhiều ký tự vào hàm ord[] của Python
    • Sử dụng Python ord[] cho nhiều ký tự
  • Hàm chr[] trong Python. Số nguyên sang ký tự Unicode
    • Chuyển đổi nhiều số nguyên thành chuỗi bằng Python chr[]
  • Làm việc với dữ liệu thập lục phân trong Python Ord và Chr
  • Phần kết luận
  • Tài nguyên bổ sung

Unicode là gì và nó được sử dụng như thế nào trong Python?

Trước khi đi sâu vào các hàm

>>>for i in B:
   	print[ord[i], type[ord[i]], end=' ']
# 72 
# 101 
# 108 
# 108 
# 111 
7 và
# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
0, hãy bắt đầu bằng cách giải thích lý do tại sao việc tìm hiểu về Unicode lại quan trọng như vậy. Ở cấp độ cơ bản, máy tính hoạt động với các con số – do đó, các ký tự và chữ cái xuất hiện trên màn hình là các con số ẩn bên trong

Trong quá khứ, nhiều loại mã hóa khác nhau đã tồn tại. Tuy nhiên, nhiều trong số này không đầy đủ khi xem xét vô số ký tự tồn tại trên internet. Để giải quyết vấn đề này, Unicode Consortium đã chuẩn hóa các thông số kỹ thuật về cách thể hiện các ký tự vào năm 1991.

Tiêu chuẩn Unicode được gán các giá trị số cho mọi loại ký tự, từ chữ cái đến ký hiệu đến biểu tượng cảm xúc. Tiêu chuẩn cho phép máy tính hiểu các ký hiệu dễ dàng hơn nhiều, đặc biệt là khi ngày càng có nhiều ký hiệu được thêm vào internet

Hiểu biểu diễn Unicode

Hình ảnh dưới đây cho thấy cách một ký tự chuỗi có thể được chuyển đổi thành biểu diễn Unicode dạng số của nó. Điều này thậm chí bao gồm biểu tượng cảm xúc. Tiêu chuẩn Unicode bao gồm các giá trị cho các số Unicode nằm trong khoảng từ 0 đến 1.114.111

Hàm ord[] trong Python. Unicode sang số nguyên

Hàm ord[] trong Python là gì?

Hàm Python

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
1 được sử dụng để chuyển đổi một ký tự Unicode thành biểu diễn số nguyên của nó. Chúng ta có thể truyền vào bất kỳ ký tự chuỗi đơn nào và hàm sẽ trả về một số nguyên

Hãy xem nó trông như thế nào

B = '\u0048u0065u006Cu006Cu006F'
>>>print[ord[B]]
# TypeError: ord[] expected a character, but string of length 5 found
3

Chúng ta có thể thấy biểu diễn số nguyên của chữ cái Unicode

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
7 là 100. Hàm
# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
1 hoạt động bằng cách lấy một ký tự đơn làm đầu vào, ký tự mà bạn muốn chuyển đổi thành số nguyên

Truyền nhiều ký tự vào hàm ord[] của Python

Hàm Python

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
1 cho phép bạn chỉ chuyển vào một ký tự duy nhất. Hãy xem điều gì sẽ xảy ra khi chúng ta nhập nhiều hơn một ký tự

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found

Chúng ta có thể thấy rằng việc chuyển nhiều hơn một ký tự vào hàm

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
1 sẽ tạo ra một
B = '\u0048u0065u006Cu006Cu006F'
>>>print[ord[B]]
# TypeError: ord[] expected a character, but string of length 5 found
91. Điều này xảy ra vì hàm chỉ mong đợi một ký tự duy nhất được truyền vào

Sử dụng Python ord[] cho nhiều ký tự

Để giải quyết vấn đề

B = '\u0048u0065u006Cu006Cu006F'
>>>print[ord[B]]
# TypeError: ord[] expected a character, but string of length 5 found
91 xuất hiện khi có nhiều hơn một ký tự được truyền vào hàm
# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
1, chúng ta cần lặp lại từng ký tự trong chuỗi. Bởi vì các chuỗi Python là các đối tượng có thể lặp lại, chúng ta có thể lặp lại trực tiếp các giá trị chuỗi này

Hãy xem làm thế nào chúng ta có thể lặp lại ví dụ trước đó mà không cần tăng

B = '\u0048u0065u006Cu006Cu006F'
>>>print[ord[B]]
# TypeError: ord[] expected a character, but string of length 5 found
91

B = '\u0048u0065u006Cu006Cu006F'
>>>print[ord[B]]
# TypeError: ord[] expected a character, but string of length 5 found
9

Bây giờ chúng ta có thể thấy biểu diễn số nguyên của chuỗi Unicode của chúng ta. Điều này được thực hiện bằng cách lặp qua từng chữ cái trong chuỗi và áp dụng hàm

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
1 cho nó

Trong phần tiếp theo, bạn sẽ tìm hiểu về mặt trái của chức năng này. hàm

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
2, cho phép bạn nhập một số Unicode và trả về một chuỗi đại diện

Hàm chr[] trong Python. Số nguyên sang ký tự Unicode

Hàm Python chr[] là gì?

Hàm Python chr[] chuyển đổi một biểu diễn số nguyên thành ký tự chuỗi Unicode tương ứng của nó. Chúng ta có thể truyền vào bất kỳ số nguyên nào và hàm sẽ trả về một ký tự chuỗi

Hàm

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
0 của Python thực hiện ngược lại với hàm
>>>for i in B:
   	print[ord[i], type[ord[i]], end=' ']
# 72 
# 101 
# 108 
# 108 
# 111 
7, trả về một ký tự Unicode khi một giá trị số nguyên được truyền vào

Hãy chuyển đổi một giá trị số nguyên thành đối tác Unicode của nó

>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]
7

Chúng ta có thể thấy rằng bằng cách truyền vào một số nguyên, một ký tự chuỗi được trả về

Chuyển đổi nhiều số nguyên thành chuỗi bằng Python chr[]

Hãy thử chuyển đổi một số giá trị từ số nguyên thành các đối số Unicode của chúng

>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]
8

Chúng ta có thể tiến xa hơn và chuyển đổi danh sách các số này thành một chuỗi Python thực tế. Chúng ta có thể làm điều này bằng cách sử dụng phương pháp

B = '\u0048u0065u006Cu006Cu006F'
>>>print[ord[B]]
# TypeError: ord[] expected a character, but string of length 5 found
99. Hãy xem cách thức hoạt động của nó. Thay vì sử dụng vòng lặp for, hãy sử dụng cách hiểu danh sách Python để đơn giản hóa quy trình này

>>>B_list = list[map[int, [ord[i] for i in B]]]
>>>print[type[B_list{0]]]
# 
0

Trong ví dụ trên, chúng tôi đã sử dụng phương pháp

>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]
70 để chuyển đổi danh sách chuỗi kết quả thành một chuỗi đơn

Khi viết bài này, hàm chấp nhận bất kỳ giá trị nào trong khoảng từ 0 đến 1.114.111, đại diện cho tất cả các ký tự Unicode có sẵn. Nếu một giá trị nằm ngoài phạm vi này được truyền vào hàm, thì hàm sẽ tăng một giá trị

>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]
71. Hãy xem nó trông như thế nào

>>>B_list = list[map[int, [ord[i] for i in B]]]
>>>print[type[B_list{0]]]
# 
3

Chúng ta có thể thấy rằng, như mong đợi, một

>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]
71 đã được nâng lên

Làm việc với dữ liệu thập lục phân trong Python Ord và Chr

Trong Python, số thập lục phân là số được biểu diễn trong các cơ số phổ biến khác. Định dạng thập lục phân thay đổi cơ số thành 16 và có thể được sử dụng với cả hàm

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
0 và
>>>for i in B:
   	print[ord[i], type[ord[i]], end=' ']
# 72 
# 101 
# 108 
# 108 
# 111 
7. Trong Python, những con số này có thể được sử dụng bằng cách thêm tiền tố vào số nguyên là
>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]
75

Chúng ta có thể chuyển đổi một số nguyên thành số thập lục phân tương đương bằng cách sử dụng hàm

>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]
76. Hãy thử xem

>>>B_list = list[map[int, [ord[i] for i in B]]]
>>>print[type[B_list{0]]]
# 
8

Bây giờ chúng ta có giá trị thập lục phân cho số 100, chúng ta có thể chuyển giá trị này vào hàm

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
0 để chuyển đổi nó thành biểu diễn Unicode của nó

>>>for i in B:
   	print[ord[i], type[ord[i]], end=' ']
# 72 
# 101 
# 108 
# 108 
# 111 
0

Ở đây chúng ta có thể thấy rằng

>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]
78 là một biểu diễn số hợp lệ trong Python. Python sẽ giải thích tiền tố
>>>print[list[map[int, [ord[i] for i in B]]]]
# [72, 101, 108, 108, 111]
75 để biểu thị các định dạng thập lục phân và sẽ chuyển đổi giá trị thành biểu diễn Unicode của nó

Phần kết luận

Trong hướng dẫn này, bạn đã học cách làm việc với các hàm

# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
0 và
>>>for i in B:
   	print[ord[i], type[ord[i]], end=' ']
# 72 
# 101 
# 108 
# 108 
# 111 
7 trong Python. Các chức năng này cho phép bạn dịch unicode thành ký tự chuỗi và ký tự chuỗi thành unicode. Bạn cũng đã học cách sử dụng hàm
# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
1 cho nhiều ký tự. Cuối cùng, bạn đã học cách làm việc với dữ liệu thập lục phân trong Python, khi sử dụng các hàm
# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
0 và
>>>for i in B:
   	print[ord[i], type[ord[i]], end=' ']
# 72 
# 101 
# 108 
# 108 
# 111 
7

Để tìm hiểu thêm về các hàm

>>>for i in B:
   	print[ord[i], type[ord[i]], end=' ']
# 72 
# 101 
# 108 
# 108 
# 111 
7 và
# Converting Unicode to Int Using ord[]
character = 'datagy'
print[ord[character]]

# Raises: TypeError: ord[] expected a character, but string of length 6 found
0 của Python, hãy xem tài liệu chính thức tại đây

Làm cách nào để chuyển đổi số nguyên thành Unicode trong Python?

Hàm chr[] của thư viện Python chuyển đổi ký tự Unicode được liên kết với bất kỳ bộ chuyển đổi nào nằm trong khoảng từ 0 đến 0x10ffff.

\U trong Python là gì?

Trong Python3, chuỗi mặc định được gọi là Chuỗi Unicode [chuỗi u], bạn có thể hiểu chúng là các ký tự mà con người có thể đọc được. Như đã giải thích ở trên, bạn có thể mã hóa chúng thành chuỗi byte [chuỗi b] và chuỗi byte có thể được giải mã trở lại chuỗi Unicode.

Cách mã hóa sang UTF

Làm cách nào để chuyển đổi chuỗi thành UTF-8 trong Python? .
string1 = "apple" string2 = "Preeti125" string3 = "12345" string4 = "pre@12"
chuỗi. mã hóa [mã hóa = 'UTF-8', lỗi = 'nghiêm ngặt']
# chuỗi unicode string = 'pythön. ' # mã hóa mặc định thành utf-8 string_utf = string. encode[] print['Phiên bản được mã hóa là. ', string_utf]

Làm cách nào để chuyển đổi không phải ASCII sang ASCII Python?

Phương pháp này liên quan đến unidecode thư viện sẵn có . Thư viện này giúp Chuyển ngữ các ký tự không phải ASCII trong Python. Nó cung cấp một phương thức unidecode[] lấy dữ liệu Unicode và cố gắng biểu diễn nó trong ASCII. Phương pháp này tự động xác định ngôn ngữ kịch bản và phiên âm nó cho phù hợp.

Chủ Đề