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 sumainstead 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.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". 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:
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: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 0Last 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? 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:
|