如何在 python 中将整数转换为单词?

新手上路,请多包涵

编写一个将整数作为输入参数并使用单词返回整数的函数。例如,如果输入为 4721,则该函数应返回字符串“四七二一”。请注意,单词之间应该只有一个空格,并且在您返回的字符串中它们应该全部小写。

这是我的代码:

 def Numbers_To_Words (number):
    dict = {1: "one", 2: "two", 3: "three", 4: "four", 5: "five", 6: "six", 7: "seven", 8: "eight", 9: "nine", 0: "zero"}
    output_str = " "
    list = []

#Main Program
number = 4721
result = Numbers_To_Words (number)
print (result)

我的问题是,如何将数字分开,然后与我创建的字典进行比较?我知道长度不适用于整数数据类型。我知道进一步的逻辑是将键发送到字典并获取它们各自的值。但在此之前,我被困在这里分隔整数的数字。

原文由 Karan Thakkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 876
2 个回答

为它使用模块: https ://pypi.python.org/pypi/num2words

另外,检查类似的问题: How do I tell Python to convert integers into words

您可以安装模块并查看它是如何在那里实现的。

但是你的问题是这样解决的:

 def numbers_to_words (number):
    number2word = {'1': "one", '2': "two", '3': "three", '4': "four", '5': "five", '6': "six",
            '7': "seven", '8': "eight", '9': "nine", '0': "zero"}
    return " ".join(map(lambda i: number2word[i], str(number)))

print(numbers_to_words(1234))

原文由 JRazor 发布,翻译遵循 CC BY-SA 4.0 许可协议

有一种方法比其他方法更简单:

 def number_to_words(number)
    words = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"]
    return " ".join(words[int(i)] for i in str(number))

原文由 zondo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题