7.2编写的文件名称提示中的程序,然后打开文件,并通过文件读取,寻找形式的行:任何人都可以帮我解释这个python代码吗?
X-DSPAM-Confidence: 0.8475
计数这些线,并且从每个提取浮点值并计算这些值的平均值并产生如下所示的输出。
您可以在下面的测试中下载样本数据http://www.pythonlearn.com/code/mbox-short.txt,输入mbox-short.txt作为文件名。
这就是我所做的,并得到了输出,但它是做到这一点?:
fname = raw_input("Enter file name: ")
fh = open(fname)
sum = 0
count = 0
for line in fh:
if not line.startswith("X-DSPAM-Confidence:") : continue
line = line.replace("X-DSPAM-Confidence:","")
line = line.strip()
sum = sum + float(line)
count = count + 1
avg = sum/count
print "Average spam confidence:",float(avg)
然而,在其他一些双方以正确的方式,这其中,和GitHub上的代码已被写入不同。任何人都可以解释给我吗?
1)
fname = raw_input("Enter file name: ")
fh = open(fname)
tot = 0.0
count = 0
for line in fh:
if not line.startswith("X-DSPAM-Confidence:") : continue
words = line.split()
tot = tot + float(words[1])
count = count + 1
print "Average spam confidence:", tot/count
是什么split()
在这里做?删除空白处并将其打印在下一行右侧?那么这有什么帮助?那么float(words[1])
会是什么?对不起,这听起来很愚蠢,但这是我进入Python的第三天,我只是想学习。
2)很多人都使用合计这样:
a = line.split(':')
sum = sum + float(a[1])
这是如何工作的?
不要将其命名变量'sum';它会隐藏内置的“总和”(对于像这样的许多任务来说这通常很方便);隐藏内置是一个可怕的想法。 – ShadowRanger