python如何将字符串转换为数字?
对于整数,可使用内置的 int()
类型构造器,例如 int("144") == 144
。 类似地,可使用 float()
转换为浮点数,例如 float("144") == 144.0
。
默认情况下,这些操作会将数字按十进制来解读,因此 int("0144") == 144
而 int("0x144")
会引发 ValueError
。 int(string, base)
接受第二个可选参数指定转换的基数,例如 int("0x144", 16) == 324
。 如果指定基数为 0,则按 Python 规则解读数字:前缀 “0o” 表示八进制,而 “0x” 表示十六进制。
如果你只是想将字符串转为数字,请不要使用内置函数 eval()
。 eval()
的速度会慢很多并且有安全风险:别人可能会传入具有你不想要的附带效果的 Python 表达式。 例如,别人可以传入 __import__("os").system("rm -rf $HOME")
这将删除你的家目录。
eval()
还具有将数字解读为 Python 表达式的效果,这样 eval("09")
将会导致语法错误,因为 Python 不允许十进制数的首位是 “0” (“0” 除外)。
来源:PY学习网:原文地址:https://www.py.cn/article.html