这不是Python问题,您传递的浮点数以减号(
−,unipre
U + 2212)开头,而不是常规的连字符-减号(
-unipre U +
002D,Python和大多数语言使用的符号为“减号”标志)。我猜这是因为您从某个文档中复制了数字,因为很难用键盘键入Unipre减号。
一种简单的解决方案是,当您在命令行中调用程序时,用常规的连字符替换这些符号。如果您 确实
需要编程来处理这些符号,则可以使用如下函数来解析数字,而不是调用
float:
def float_unipre(arg_str): return float(arg_str.depre("utf8").replace(u"u2212", "-"))但是,我不建议这样做,因为它会使程序更加复杂,并且大多数使用数字的命令行工具都不支持此功能,因此用户通常不希望您的程序这样做。



