我对 Python 很陌生,我一直在为我的程序构建逻辑。我想学习,但我觉得我需要一些外部帮助。也许你们可以帮助我。这是家庭作业/项目。
list (SalesData.txt)
看起来像这样:
- 名称 1
- 23
- 34
- 454
- 名称 2
- 344
- 34
- 45
它至少有 5 个不同的名称。但是对于这个例子,这会做。
基本上,我需要得出所有数字的总和,然后是每个名字的总和。
输出:: 在这种情况下(使用示例)
- 总计 = 934(所有数字的总和)
- 名称 1 总计 = 511(名称 1 的数字总和)
- 名称 2 总计 = 423(名称 2 的数字总和)
我知道如何获得仅包含数字的文件的总和,但是当涉及到混合时,我很困惑。另外,我如何指定获取每个"name"
. 我应该使用.isdigit()
and.isalpha()
来告诉列表什么时候求和什么时候不求和?
任何建议都会帮助我!谢谢!
更新 这是我到目前为止的代码:
data = []
data = open("SalesData.txt").read().split()
for i in data:
s = sum([ float(i) ])
print "Sum=" , s
print "Avg=" , s/len(data)
这仅在文件全为数字时才有效,这很容易对内容进行求和。但请记住,我每 12 个数字处理一个字符串。我试图弄清楚如何仅在找到带有浮点数的行时才进行求和。
更新#2
我仍然需要一些指导!我开始用我自己的方式来总结,但我发现了一些非常基本的问题(我敢肯定)
data = []
data = open("SalesData.txt").read().split()
for i in data:
if str(i):
print 'This one is Letter'
elif float(i):
s = sum([ float(i) ])
print "Sum=" , s
print "Avg=" , s/len(data)
我知道这个例子不起作用,我想知道为什么。我正在尝试分析列表。如果'i'是一个字符串,程序将(在这个例子中打印'Letter')如果它不是一个字符串,它会做常规的数字总和。我当时正在使用这个程序,我希望能够使用提供的混合列表来获得数字的总和,但是我在将字符串分析为字符串和将浮点数分析为浮点数方面陷入困境。