Python Forum
arrays sum list unsupported operand type(s) for +=: 'int' and 'list' - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Homework (https://python-forum.io/forum-9.html)
+--- Thread: arrays sum list unsupported operand type(s) for +=: 'int' and 'list' (/thread-21894.html)



arrays sum list unsupported operand type(s) for +=: 'int' and 'list' - DariusCG - Oct-19-2019

Hello.
I want to make more "def" in my program, but I'am getting an error like this when want to sum numbers in the list. "this unsupported operand type(s) for +=: 'int' and 'list'" How to solve this? I want to make this definition
def skaiciuoti(betkokieskaiciai):
            suma=0
            for betkokszodis in betkokieskaiciai:
                suma+=(skaicius)
            return suma
instead of this
suma=sum((skaicius)
suma2=sum(skaicius2)
suma3=sum(skaicius3)
suma4=sum(skaicius4)
suma5=sum(skaicius5)
At this mooment my program is looking like this.
n=int(input('Kiek norite įvesti skaičių pirmam masyvui'))
n2=int(input('Kiek norite įvesti skaičių antram masyvui'))
n3=int(input('Kiek norite įvesti skaičių trečiam masyvui'))
n4=int(input('Kiek norite įvesti skaičių ketvirtam masyvui'))
n5=int(input('Kiek norite įvesti skaičių penktam masyvui'))      
suma=0
suma2=0
suma3=0
suma4=0
suma5=0
skaicius=[]
skaicius2=[]
skaicius3=[]
skaicius4=[]
skaicius5=[]
for i in range(n):
    a=float(input('Iveskite skaiciu pirmas masyvas'))
    
    skaicius.append(a)
def tekstas(kazkoks):
    print(f"{kazkoks} masyvas įvestas")
tekstas("pirmas")


for i in range(n2):
    a=float(input('Iveskite skaiciu antras masyvas'))
    
    skaicius2.append(a)
tekstas("antras")    
for i in range(n3):
    a=float(input('Iveskite skaiciu trecias masyvas'))
    
    skaicius3.append(a)
tekstas("trečias")       
for i in range(n4):
    a=float(input('Iveskite skaiciu ketvirtas masyvas'))
    
    skaicius4.append(a)
tekstas("ketvirtas")     
for i in range(n5):
    a=float(input('Iveskite skaiciu penktas masyvas'))
    
    skaicius5.append(a)                        
tekstas("penktas") 

        
suma=sum(skaicius)
suma2=sum(skaicius2)
suma3=sum(skaicius3)
suma4=sum(skaicius4)
suma5=sum(skaicius5)
def spausdinimas(pirmas, antras):
    print(f"Masyvo elementų,{pirmas}{antras},suma")

spausdinimas(skaicius,suma)
spausdinimas(skaicius2,suma2)
spausdinimas(skaicius3,suma3)
spausdinimas(skaicius4,suma4)
spausdinimas(skaicius5,suma5)



RE: arrays sum list unsupported operand type(s) for +=: 'int' and 'list' - Larz60+ - Oct-19-2019

Please always show actual error traceback, complete and unaltered, in error tags.
It contains very useful information, especially when there are different languages being used.

If I understand correctly, it seems as if you have nested lists, because the error you are quoting is complaining because
the += it is being fed a list instead of a single number. (First function).

Please post actual error message, complete and unaltered.


RE: arrays sum list unsupported operand type(s) for +=: 'int' and 'list' - DariusCG - Oct-19-2019

(Oct-19-2019, 06:11 PM)Larz60+ Wrote: Please always show actual error traceback, complete and unaltered, in error tags.
It contains very useful information, especially when there are different languages being used.

If I understand correctly, it seems as if you have nested lists, because the error you are quoting is complaining because
the += it is being fed a list instead of a single number. (First function).

Please post actual error message, complete and unaltered.
I have updated this program, now it doesn't sum my first list "skaicius" in def function, although I have made suma as "global suma". [Image: hMxJrtg]
Works with this code, but how I can make only one def that sum all my lists in different lines?
def skaiciuoti(skaicius):
    global suma
    suma=0    
    for betkokszodis in skaicius:
        suma+=betkokszodis  
    return suma   

        
    
result= skaiciuoti(skaicius)
print("sum = ", result)
n=int(input('Kiek norite įvesti skaičių pirmam masyvui'))

n2=int(input('Kiek norite įvesti skaičių antram masyvui'))
n3=int(input('Kiek norite įvesti skaičių trečiam masyvui'))
n4=int(input('Kiek norite įvesti skaičių ketvirtam masyvui'))
n5=int(input('Kiek norite įvesti skaičių penktam masyvui'))      

suma=0
suma2=0
suma3=0
suma4=0
suma5=0
skaicius=[]
skaicius2=[]
skaicius3=[]
skaicius4=[]
skaicius5=[]
for i in range(n):
    a=float(input('Iveskite skaiciu pirmas masyvas'))
    
    skaicius.append(a)
def tekstas(kazkoks):
    print(f"{kazkoks} masyvas įvestas")
tekstas("pirmas")


for i in range(n2):
    a=float(input('Iveskite skaiciu antras masyvas'))
    
    skaicius2.append(a)
tekstas("antras")    
for i in range(n3):
    a=float(input('Iveskite skaiciu trecias masyvas'))
    
    skaicius3.append(a)
tekstas("trečias")       
for i in range(n4):
    a=float(input('Iveskite skaiciu ketvirtas masyvas'))
    
    skaicius4.append(a)
tekstas("ketvirtas")     
for i in range(n5):
    a=float(input('Iveskite skaiciu penktas masyvas'))
    
    skaicius5.append(a)                        
tekstas("penktas") 

def skaiciuoti(betkokieskaiciai):
    
    for betkokszodis in betkokieskaiciai:
        global suma
        suma+=(skaicius)
    return suma
print(sum((skaicius)))


suma2=sum(skaicius2)
suma3=sum(skaicius3)
suma4=sum(skaicius4)
suma5=sum(skaicius5)
def spausdinimas(pirmas, antras):
    print(f"Masyvo elementų,{pirmas}{antras},suma")

spausdinimas(skaicius,suma)
spausdinimas(skaicius2,suma2)
spausdinimas(skaicius3,suma3)
spausdinimas(skaicius4,suma4)
spausdinimas(skaicius5,suma5)



RE: arrays sum list unsupported operand type(s) for +=: 'int' and 'list' - Larz60+ - Oct-19-2019

It already does that:
def skaiciuoti(skaicius):
    global suma
    suma=0    
    for betkokszodis in skaicius:
        suma+=betkokszodis  
    return suma

first = [1, 2, 3, 4, 5]
second = [9, 3, 8, 6, 0, 12, 9]
print(skaiciuoti(first))
print(skaiciuoti(second))
output:
Output:
15 47



RE: arrays sum list unsupported operand type(s) for +=: 'int' and 'list' - DariusCG - Oct-19-2019

(Oct-19-2019, 07:09 PM)Larz60+ Wrote: It already does that:
def skaiciuoti(skaicius):
    global suma
    suma=0    
    for betkokszodis in skaicius:
        suma+=betkokszodis  
    return suma

first = [1, 2, 3, 4, 5]
second = [9, 3, 8, 6, 0, 12, 9]
print(skaiciuoti(first))
print(skaiciuoti(second))
output:
Output:
15 47
Yes it works, maybe I missed something. Do you know the shortest way how to print
like in the table below: :^10 .format doesn't work in this case for me or I don't know how to use...
First Array |[1 2 3] | sum is 6
Second Array | [2 2 3] | sum is 7
Third Array | [1 0 -1] | sum is 0
Last updated code is:
def skaiciuoti(skaicius):
    global suma
    suma=0    
    for betkokszodis in skaicius:
        suma+=betkokszodis  
    return suma

print(skaiciuoti(skaicius))
print(skaiciuoti(skaicius2))
print(skaiciuoti(skaicius3))
print(skaiciuoti(skaicius4))
print(skaiciuoti(skaicius5))



RE: arrays sum list unsupported operand type(s) for +=: 'int' and 'list' - Larz60+ - Oct-20-2019

shortest way to print?
see my previous post, lines 10 and 11


RE: arrays sum list unsupported operand type(s) for +=: 'int' and 'list' - DariusCG - Oct-20-2019

(Oct-20-2019, 05:00 AM)Larz60+ Wrote: shortest way to print?
see my previous post, lines 10 and 11
print(skaiciuoti(skaicius2))
This print is calling only one def function. How to insert print text, print list in this def function or I need to make a new def for printing like this?
I need to print like this way.
First Array |[1 2 3] | sum is 6
Second Array | [2 2 3] | sum is 7
Third Array | [1 0 -1] | sum is 0



RE: arrays sum list unsupported operand type(s) for +=: 'int' and 'list' - Larz60+ - Oct-20-2019

please study python basics!
these are simple print statements!
example 1:

print(f"First Array: |[1 2 3] | sum is {skaiciuoti([1, 2, 3])}")
you need comma's in your list for it to be a valid list,


output:
Output:
First Array: |[1 2 3] | sum is 6