You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将文字数字转数值?范围-999,999,999至999,999,999

英文数字字符串转数值的Python实现

需求:将以英文文字表示数字的字符串转换为对应数值,例如输入negative sixty nine,输出-69。以下是实现代码:

ones = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
tens = ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"]
teens = ["", "", "", "", "", "", "", "", "", "", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"]
hun = ["hundred", "thousand", "million"]

x = input()
a = x.split()
val = 0

# 处理负数前缀
if a[0] == 'negative':
    i = 1
else:
    i = 0

while i < len(a):
    if a[i] in ones:
        val += ones.index(a[i])
    elif a[i] in tens:
        val += tens.index(a[i]) * 10
    elif a[i] in teens:
        val += teens.index(a[i])
    elif a[i] in hun:
        # 根据量级词调整当前数值
        if a[i] == 'hundred':
            temp = 100
        elif a[i] == 'thousand':
            temp = 1000
        else:
            temp = 1000000
        val *= temp
    i += 1

# 输出结果,负数则取反
print(-val if a[0] == 'negative' else val)

代码说明

  • 用四个列表分别存储不同类型的数字词汇:个位数字、整十数字、10-19的特殊数字、量级单位(百、千、百万)
  • 先判断输入是否包含negative前缀,确定遍历起始位置
  • 遍历拆分后的每个单词,根据词汇类型累加或倍增当前数值
  • 最后根据前缀决定输出正负数值

内容的提问来源于stack exchange,提问作者Yaswanth G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:10:17