如何在Python中编写函数将数字转为对应英文文本串?
多位数转对应文本的解决方案
你的现有代码只能处理单个数字,要实现多位数的拆分转换,只需要遍历数字的每一位,逐个转换后拼接即可,修改后的代码如下:
table = { 0: "zero", # 按需添加,若不需要处理0可删除 1: "one", 2: "two", 3: "three", 4: "four", 5: "five", 6: "six", 7: "seven", 8: "eight", 9: "nine" } def digits_to_text(num): # 将输入转为字符串,遍历每一位数字 digit_chars = str(num) # 逐个转换数字为对应文本,收集结果 text_segments = [table[int(char)] for char in digit_chars] # 用空格拼接所有文本段 return ' '.join(text_segments)
说明
- 调整了映射字典:移除了
10: "ten"的条目,因为我们是按单个数字拆分处理;若需要处理0的文本转换,可以保留0: "zero"(不需要则直接删除)。 - 输入兼容处理:不管传入的是整数(如
33)还是字符串形式的数字(如"33"),函数都能正常工作。 - 核心逻辑:把数字转为字符串后遍历每一位,将每个字符转为整数后从字典中获取对应文本,最后用空格拼接成结果。
测试示例:
digits_to_text(33)返回'three three'digits_to_text(1234)返回'one two three four'
内容的提问来源于stack exchange,提问作者panda bear
相关产品推荐
相关产品推荐

