Giả sử chúng ta có một số. Số có thể là bất cứ thứ gì trong từ 0 đến 231 - 1. Chúng ta phải chuyển đổi số thành từ. Vì vậy, nếu số lượng giống như 512, thì kết quả sẽ là năm trăm mười hai.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước này -
Xác định một số danh sách như Less_Than_20, điều này sẽ chứa tất cả các từ từ một đến mười chín
Một mảng khác như hàng chục để giữ hàng chục, hai mươi, ba mươi và vân vân lên tới chín mươi
Một mảng khác cho hàng ngàn, để giữ hàng ngàn, triệu và tỷ
Xác định một hàm gọi là người trợ giúp [], điều này sẽ mất n
Nếu n là 0, thì hãy trả lại chuỗi trống
Nếu không
Mặt khác, khi n 0
Nếu num mod 1000 không phải là 0, thì
Ans: = người trợ giúp [Num mod 1000] + hàng ngàn [i] + không gian trống + ANS
trả lại ans
Hãy cho chúng tôi xem việc thực hiện sau đây để hiểu rõ hơn -
Thí dụ
class Solution[object]: less_than_20 = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"] tens = ["","Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"] thousands = ["", "Thousand", "Million", "Billion"] def numberToWords[self, num]: if num == 0: return "Zero" ans = "" i = 0 while num > 0: if num % 1000 != 0: ans = self.helper[num % 1000] + Solution.thousands[i] + " " + ans i += 1 num //= 1000 return ans.strip[] def helper[self, n]: if n == 0: return "" elif n < 20: return Solution.less_than_20[n] + " " elif n < 100: return Solution.tens[n//10] + " " + self.helper[n % 10] else: return Solution.less_than_20[n // 100] + " Hundred " + self.helper[n % 100] ob = Solution[] print[ob.numberToWords[512]] print[ob.numberToWords[7835271]]
Đầu vào
512 7835271
Đầu ra
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One
Cập nhật vào ngày 09 tháng 6 năm 2020 07:37:06
- Câu hỏi và câu trả lời liên quan
- Số nguyên từ tiếng Anh trong Python
- Những từ tiếng Anh mới mà bạn đã học được hôm nay là gì?
- Tôi thường đồng xu nhiều từ bằng tiếng Anh. Làm thế nào để đưa họ vào từ điển?
- Chương trình thể hiện số nguyên dương tính bằng các từ trong C ++
- Chương trình Python để hoán đổi trường hợp tiếng Anh
- La Mã đến số nguyên trong Python
- Học tiếng Anh dễ dàng vào năm 2020: Mọi thứ bạn nên biết về học tiếng Anh
- Danh sách nhị phân để số nguyên trong Python
- Cơ sở 3 đến số nguyên trong Python
- Chuyển đổi tuple thành số nguyên trong python
- Chương trình Java để hiển thị bảng chữ cái tiếng Anh
- Sự nhân cách hóa trong tiếng Anh là gì?
- In các từ theo chiều dọc trong python
- Số nguyên ngược trong Python
- Một số cụm từ tiếng Anh hữu ích có thể cải thiện tiếng Anh của tôi là gì?
Mô-đun Num2Words trong Python, chuyển đổi số [như 34] thành các từ [như ba mươi tư]. Ngoài ra, thư viện này có hỗ trợ cho nhiều ngôn ngữ. Trong bài viết này, chúng ta sẽ thấy cách chuyển đổi số thành các từ bằng cách sử dụng num2words
Module.
Cài đặt có thể dễ dàng cài đặt num2words
bằng PIP.
One can easily install num2words
using pip.
pip install num2words
Hãy xem xét hai trích đoạn sau từ các tệp khác nhau được lấy từ 20 nhóm tin, cơ sở dữ liệu NLP phổ biến. Tiền xử lý 20 nhóm tin một cách hiệu quả vẫn là một vấn đề quan tâm.
Trong bài viết, Martin Preston viết: Tại sao không sử dụng thư viện PD C để đọc/viết các tệp TIFF? Tôi đã mất 20 phút để bắt đầu sử dụng chúng trong ứng dụng của riêng bạn.iscis VIII là lần thứ tám của một loạt các cuộc họp đã tập hợp các nhà khoa học và kỹ sư máy tính từ khoảng hai mươi quốc gia. Hội nghị năm nay sẽ được tổ chức tại Thành phố Khu nghỉ mát Địa Trung Hải xinh đẹp của Antalya, trong một khu vực giàu có về các địa điểm tự nhiên cũng như lịch sử.20 minutes to start using them in your own app.
ISCIS VIII is the eighth of a series of meetings which have brought together computer scientists and engineers from about twenty countries. This year’s conference will be held in the beautiful Mediterranean resort city of Antalya, in a region rich in natural as well as historical sites.
Trong hai trích đoạn trên, người ta có thể quan sát rằng số 20 20 xuất hiện ở cả hai dạng số và bảng chữ cái. Đơn giản chỉ cần làm theo các bước xử lý trước, liên quan đến mã thông báo, hóa hóa và vv sẽ không thể ánh xạ vào 20, và hai mươi vào cùng một thân cây, có tầm quan trọng theo ngữ cảnh. May mắn thay, chúng tôi có thư viện được xây dựng, num2words
giải quyết vấn đề này trong một dòng.
Dưới đây là việc sử dụng mẫu của công cụ.
from
num2words
512 78352710
num2words
512 78352712
512 78352713
512 78352714
512 78352715
512 78352712
512 78352713
512 78352714
512 78352719
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One0
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One1
512 78352715
512 78352712
512 78352713
512 78352714
512 78352719
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One0
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One8
512 78352715
512 78352712
512 78352713
512 78352714
512 78352719
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One0
pip install num2words5
512 78352715
512 78352712
512 78352713
512 78352714
512 78352719
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One0
thirty-six thirty-sixth 36th zero euro, thirty-six cents treinta y seis2
512 78352715
512 78352712
512 78352713
512 78352714
thirty-six thirty-sixth 36th zero euro, thirty-six cents treinta y seis7
Five Hundred Twelve Seven Million Eight Hundred Thirty Five Thousand Two Hundred Seventy One0
thirty-six thirty-sixth 36th zero euro, thirty-six cents treinta y seis9
512 78352715
Output:
thirty-six thirty-sixth 36th zero euro, thirty-six cents treinta y seis
Do đó, trong bước xử lý trước, người ta có thể chuyển đổi tất cả các giá trị số thành các từ để có độ chính xác tốt hơn trong các giai đoạn tiếp theo.
Tài liệu tham khảo: //pypi.org/project/num2words/ //pypi.org/project/num2words/