如何使用正则表达式从字符串中提取double值.
import re
pattr = re.compile(???)
x = pattr.match("4.5")
Run Code Online (Sandbox Code Playgroud) 我不知道这是否是一个明显的错误,但是在运行Python脚本来改变模拟的参数时,我意识到缺少delta = 0.29和delta = 0.58的结果.经过调查,我注意到以下Python代码:
for i_delta in range(0, 101, 1):
delta = float(i_delta) / 100
(...)
filename = 'foo' + str(int(delta * 100)) + '.dat'
Run Code Online (Sandbox Code Playgroud)
为delta = 0.28和0.29生成相同的文件,与.57和.58相同,原因是python返回float(29)/ 100为0.28999999999999998.但这不是一个系统性的错误,在某种意义上它并不是每个整数都会发生的.所以我创建了以下Python脚本:
import sys
n = int(sys.argv[1])
for i in range(0, n + 1):
a = int(100 * (float(i) / 100))
if i != a: print i, a
Run Code Online (Sandbox Code Playgroud)
而且我看不到发生此舍入错误的数字中的任何模式.为什么这些特定数字会发生?
我正在尝试学习Python,但遇到了问题,因此,如果我遇到类似问题:
data_l = ['data', '18.8', '17.9', '0.0']
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
data_l = ['data', 18.8, 18.9, 0.0]
Run Code Online (Sandbox Code Playgroud)