分页: 1 / 1
求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-12 15:14
由 悬崖勒马2011
#!/bin/env python
f = open("0.ASC")
for line in f.readlines():
columns = line.strip().split()
num1 = float(columns[1])
num2 = float(columns[2])
if ((num1-6)**2+(num2-18)**2)**(0.5)<0.5:
print line,
f.close()
----------------------------------------
下面是0.ASC的内容
1 6.1 18.4
2 7.1 19.4
谢谢!
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-12 15:19
由 oneleaf
代码无误,需要去检查文件。
代码: 全选
>>> a=[[1,6.1,18.4],[2,7.1,19.4]]
>>> for columns in a:
... num1 = float(columns[1])
... num2 = float(columns[2])
... if ((num1-6)**2+(num2-18)**2)**(0.5)<0.5:
... print columns
...
[1, 6.0999999999999996, 18.399999999999999]
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-12 15:27
由 悬崖勒马2011
oneleaf 写了:代码无误,需要去检查文件。
代码: 全选
>>> a=[[1,6.1,18.4],[2,7.1,19.4]]
>>> for columns in a:
... num1 = float(columns[1])
... num2 = float(columns[2])
... if ((num1-6)**2+(num2-18)**2)**(0.5)<0.5:
... print columns
...
[1, 6.0999999999999996, 18.399999999999999]
文件很简单,也没问题啊?
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-12 17:07
由 悬崖勒马2011
大家下载下来后,把我写的脚本中改为“1.txt",用我的脚本看能运行吗?帮忙找错!
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-12 21:25
由 aerofox
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-12 23:10
由 icejoywoo
代码: 全选
#!/bin/env python
import math
f = open("0.txt")
for line in f.readlines():
columns = line.strip().split()
num1 = float(columns[1])
num2 = float(columns[2])
if math.sqrt((num1-6)**2+(num2-18)**2) < 0.5:
print line,
f.close()
浮点数计算会出现误差问题, 看这种误差是否满足你的要求吧
输入文本数据如果有格式问题, catch异常进行处理吧
误差可以考虑使用这种方法
代码: 全选
#!/bin/env python
import math
f = open("0.txt")
for line in f.readlines():
columns = line.strip().split()
num1 = float(columns[1])
num2 = float(columns[2])
if math.sqrt(((num1-6)**2+(num2-18)**2) * 10000) < 0.5 * 100:
print line,
f.close()
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-13 12:44
由 悬崖勒马2011
icejoywoo 写了:代码: 全选
#!/bin/env python
import math
f = open("0.txt")
for line in f.readlines():
columns = line.strip().split()
num1 = float(columns[1])
num2 = float(columns[2])
if math.sqrt((num1-6)**2+(num2-18)**2) < 0.5:
print line,
f.close()
浮点数计算会出现误差问题, 看这种误差是否满足你的要求吧
输入文本数据如果有格式问题, catch异常进行处理吧
误差可以考虑使用这种方法
代码: 全选
#!/bin/env python
import math
f = open("0.txt")
for line in f.readlines():
columns = line.strip().split()
num1 = float(columns[1])
num2 = float(columns[2])
if math.sqrt(((num1-6)**2+(num2-18)**2) * 10000) < 0.5 * 100:
print line,
f.close()
谢啦!
还有一个问题,就是加入1.txt的头几行想加以#开头的标注,这时python就人不出来标注,就会出现错误。该怎么办呢?谢谢
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-13 20:16
由 icejoywoo
一个问题开了两个贴, 只知道提问题, 自己都不去看看
代码: 全选
#!/bin/env python
# encoding: utf-8
# 这是个测试注释
print "囗囗囗囗 U, dude! Son of 囗囗囗囗囗!"
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-14 10:53
由 悬崖勒马2011
icejoywoo 写了:一个问题开了两个贴, 只知道提问题, 自己都不去看看
代码: 全选
#!/bin/env python
# encoding: utf-8
# 这是个测试注释
print "囗囗囗囗 U, dude! Son of 囗囗囗囗囗!"
好像你理解错了。我的问题是编了一个.py,去处理.txt中的数据,但是由于.txt中有#开头的批注,阻碍了.py的运行,在不删除批注的情况下该如何使.py忽略.txt中的批注呢?谢谢
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-14 19:44
由 aerofox
代码: 全选
for line in f:
line=line.strip()
if not line.startswith('#'):
columns = line.strip().split()
.....
Re: 求助,我编了如下python脚本,为什么老是没结果呢?
发表于 : 2013-03-14 21:20
由 枫叶饭团
我了个去,我的理解有问题。。。
我还以为楼主说是的文件里有#会影响python处理问题呢。。。。。。
把备注删掉不就行了= =