我正在从文件p2.txt中读取一个数字。这个文件只包含1个数字,这是一个整数,比方说10。
test_file = open('p2.txt', 'r')
test_lines = test_file.readlines()
test_file.close()
ferNum= test_lines[0]
print int(ferNum)
但是,我收到错误
print int(ferNum)
ValueError: invalid literal for int() with base 10: '1.100000000000000000e+01\n'
我可以看到它正在考虑它只是一条线。如何将该数字解析为变量?有什么建议?问候
答案 0 :(得分:3)
问题在于即使数字的值是整数(11),它也用科学记数法表示,因此您必须将其读作float
第一
>>> float('1.100000000000000000e+01\n')
11.0
>>> int('1.100000000000000000e+01\n')
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
int('1.100000000000000000e+01\n')
ValueError: invalid literal for int() with base 10: '1.100000000000000000e+01\n'
您可以在此之后首先转换为float
然后转换为int
。
>>> int(float('1.100000000000000000e+01\n'))
11