如何在Python中实现0-99数字转英文单词(无外部库)
0-99数字转英文单词(无外部库、无逐个脚本处理)
完全可以实现,核心思路是通过预定义基础数字的英文词汇表,结合简单的逻辑拆分十位与个位,无需外部库,也不用逐个数字编写判断逻辑。
实现逻辑
- 0-19的英文单词无固定规律,直接预定义完整列表
- 20、30...90这类整十数单独预定义
- 对于非整十的两位数,拆分十位和个位后拼接词汇
示例代码(Python)
def num_to_word(n): # 预定义基础词汇 ones = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"] tens = ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"] # 校验输入范围 if not 0 <= n <= 99: return "输入数字需在0-99之间" # 处理0-19的情况 if n < 20: return ones[n] # 处理整十数 elif n % 10 == 0: return tens[n // 10] # 处理非整十的两位数 else: return f"{tens[n // 10]}-{ones[n % 10]}" # 测试示例 print(num_to_word(2)) # 输出: two print(num_to_word(25)) # 输出: twenty-five print(num_to_word(90)) # 输出: ninety print(num_to_word(17)) # 输出: seventeen
说明
- 没有依赖任何外部库,完全使用Python原生语法实现
- 无需为每个数字单独编写判断分支,通过数学运算拆分数字,结合预定义词汇表完成转换,避免了冗余的逐个处理逻辑
内容的提问来源于stack exchange,提问作者Faaez Usman
相关产品推荐
相关产品推荐

