Comments interposed:-
On 09/11/2020 08:14, 2qdxy4rzwzuui...@potatochowder.com wrote:
On 2020-11-08 at 19:00:34 +0000,
Peter Pearson <pkpearson@nowhere.invalid> wrote:
On Sun, 8 Nov 2020 13:50:19 -0500, Quentin Bock <qberz2...@gmail.com> wrote:
Errors say that add takes 1 positional argument but 3 were given? Does this
limit how many numbers I can have or do I need other variables?
Here is what I have:
def add(numbers):
total = 1
for x in numbers:
total += x
return total
print(add(1999, -672, 84))
Your function "add" expects a single argument that is a list
of numbers. You're passing it three arguments, each a number.
Try add([1999, -672, 84]).
Minor point ('here'): aren't arguments passed as a tuple? (cf "list")
[next point probably more advanced than OP requires]
Major 'gotchas' elsewhere: remember the difference between passing an
immutable, cf a mutable, argument (tuple cf list)! Also related,
functions' name-spaces:
>>> my_list = [ 1, 2, 3 ]
>>> def function1( any_list ):
... any_list = [ 4, 5, 6 ]
...
>>> function1( my_list )
>>> my_list
[1, 2, 3]
>>> def function2( any_list ):
... any_list.append( [ 4, 5, 6 ] )
...
>>> function2( my_list )
>>> my_list
[1, 2, 3, [4, 5, 6]]
- neither of which works with tuples...
Some refer to such mutable 'flexibility' as a "side-effect" and thus
undesirable/to be avoided.
Or change add to accept an arbitrary number of arguments and collect
them into a tuple:
def add(*numbers):
# then the rest of the function as before
+1
BTW, why initialize total to 1?
Because OP copied 'multiply' code, completed earlier?
[OP]
Once you have this code working, as above, consider refactoring to use
sum()...
Web.Refs:
https://docs.python.org/3/library/functions.html
https://riptutorial.com/python/example/28509/mutable-and-immutable-as-arguments
--
Regards =dn
--
https://mail.python.org/mailman/listinfo/python-list