:「トータル:は、返された値を合計することができませんでし戻る
mealReturnValue = re.findall("\d+\.\d+",lines[2])
例ファイルの行は、それから引きます法案は、次のようにこれは、番号のリストを返します
「400.00だった:
[['400.00'], ['210.0'], ['400.00']]
私は、リストを合計しようとしている、しかし、それは次のようなエラーがスローされます。
Traceback (most recent call last):
File "TotalSpend.py", line 25, in <module>
totalSpend = sum(mealReturn)
TypeError: unsupported operand type(s) for +: 'int' and 'list'
これはre.findallの機能と思われますが、これは手動で同じ番号の配列を生成することで可能です。例えば
:だから私は、本当の問題はここにあるかわからない
i = [400.00, 210.0, 400.00]
print sum(i)
、私は、リストで使用できるfloatにre.findallを変換するように見える傾けます。
ご協力いただければ幸いです。余分明確にするために
全体のコードファイル:
import os
import sys
import re
dirListing = os.listdir('C:\Users\joshnathan\Desktop\LPTHW')
mealReturn =[] # Array of returned meal values
numberOfMeals = 0
print "Which meal do you want to calculate?"
meal = raw_input(">>")
for item in dirListing:
if meal in item:
numberOfMeals += 1
fileName = open(item, 'r')
lines = fileName.readlines()
mealReturnValue = re.findall('\d+\.\d+',lines[2])
mealReturn.append(mealReturnValue)
print mealReturn
print numberOfMeals
totalSpend = sum(mealReturn)
print totalSpend
おかげ ジョシュア
*これは*番号のリストを返します - うーん... 're.findall'はそれを返しません...あなたは私たちに見せていない何か他のことをしていないと確信していますか? (毎回リストに追加するなど) –
参照用にフルコードファイルを追加しました。更新していただきありがとうございます! – ImNewToThis