Använda funktion i funktion
Jag har en fil med olika rader där det tex står:
1, 0.8, 0.4, 54
1, 0.2, 0.3, 12
2, 0.3, 0.3, 45
2, 0.5, 0.7, 19
och jag har skapat en funktion (def value(fil) )som gör en dictionary av allt där första värdet skall vara key och sista indexed skall vara value, dvs i ovanstående fil har jag fått:
{1:[54,12], 2:[45,19]}. Koden stämmer och jag vill nu använda den funktion i denna kod:
def mean(file):
calc=value(file)
result={}
for bat,val in sorted(calc.items()):
mean = sum(val)/len(val)
result[bat]=mean
return result
print(mean('rader.txt'))
men jag får felmeddelandet :TypeError: unsupported operand type(s) for +: 'int' and 'str' och förstår ej vad som är fel
Hur ser hela felmeddelandet ut?
'' line 38, in mean
mean = sum(val)/len(val)
TypeError: unsupported operand type(s) for +: 'int' and 'str' ''
OK, då skulle jag lägga in en spårutskrift på raden innan, som skriver ut val.
Vad menar du?🙈 är ganska ny med programmering haha
Före raden med mean= kan du lägga in en rad som gör
print(val)
Provade men får en tom dictionary haha
Får du samma fel som tidigare?
Och vad har val för värde?
val ska vara value i listform i en dictionary
Det ska det nog, men vad har det faktiskt för värde när det blir fel? Gjorde du print(val)?
Alltså min def (mean)-funktion innehåller ju en annan funktion som jag skapat en dictionary i. Så använder en funktion i en funktion liksom
Provade med en testfil och har dictionary
” {1:[6,4,2], 2:[8,9,1]}
Om du inte tar reda på värdet på val precis innan det blir fel så kommer vi inte längre.