【问题标题】:how to perform mathematical operations with unicode number in python3 or javascript如何在 python3 或 javascript 中使用 unicode 数字执行数学运算
【发布时间】:2018-07-20 21:11:12
【问题描述】:

如何使用非 ascii 数字进行数学运算 在python3或javascript中,

像这样1 + 1 = 2,如何用unicode号১+১=২执行

【问题讨论】:

  • “执行数学运算”到底是什么意思?请提供更多细节。数学运算是用数字而不是字符串执行的,“非 ascii 数字”的概念没有什么意义:“ascii”是 text 的属性,而不是数字。请注意,intfloat 构造函数很乐意接受非标准数字:int("১") 将返回 1
  • 谢谢,我明白了,但没有解决我的问题,我想对非 ascii 数字求和并得到非 ascii 输出
  • 所以“非ASCII数字”,我猜你的意思是包含非ASCII数字的字符串?这些字符串是否来自文件?来自用户?我假设您再次想要一个非 ASCII 字符串作为输出?

标签: javascript python-3.x math unicode ascii


【解决方案1】:

除了১+২=২ 是错误的,我还要指出unicodedata.decimal。只要底层数字系统本质上是十进制的,这将允许您将每个非 ascii 数字转换为其数值,并根据需要从那里转换为它的 ascii 表示。

import unicodedata
def dec(c):
  try:
    return unicodedata.decimal(c)
  except:
    return c
print(repr(list(map(dec, u"১+২=২"))))

将打印[1, '+', 2, '=', 2]

【讨论】:

  • 另外,普通的 intfloat 会很乐意接受包含非 ascii 数字的字符串(即使它们不接受 Unicode 减号。Grr.)
  • @MarkDickinson:哦,这很有趣。我认为可能值得自己回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-12
  • 2022-08-15
  • 2023-01-10
  • 2020-10-28
  • 1970-01-01
  • 2015-08-15
  • 1970-01-01
相关资源
最近更新 更多