51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
# Every function in Python receives a predefined number of arguments, if declared normally, like this:
|
|
|
|
def myfunction(first, second, third):
|
|
# do something with the 3 variables
|
|
pass
|
|
|
|
|
|
# It is possible to declare functions which receive a variable number of arguments, using the following syntax:
|
|
|
|
def foo(first, second, third, *therest):
|
|
print("First: %s" % first)
|
|
print("Second: %s" % second)
|
|
print("Third: %s" % third)
|
|
print("And all the rest... %s" % list(therest))
|
|
|
|
#The "therest" variable is a list of variables, which receives all arguments which were given to the "foo" function after the first 3 arguments.
|
|
foo('a', "b", "c", "d", 'e', 'f', "g")
|
|
|
|
|
|
#It is also possible to send functions arguments by keyword, so that the order of the argument does not matter, using the following syntax. The following code yields the following output: The sum is: 6 Result: 1
|
|
|
|
def bar(first, second, third, **options):
|
|
if options.get("action") == "sum":
|
|
print("The sum is: %d" %(first + second + third))
|
|
|
|
if options.get("action") == "multiply":
|
|
print("The multiplied value is: %d" %(first * second * third))
|
|
|
|
if options.get("number") == "first":
|
|
return first
|
|
|
|
result = bar(1, 2, 3, action = "sum", number = "first")
|
|
print("Result: %d" %(result))
|
|
|
|
print("Other result: ", bar(1, 2, 3, action = "multiply", number = "first"))
|
|
|
|
|
|
# Exercise
|
|
# Fill in the foo and bar functions so they can receive a variable amount of arguments (3 or more) The foo function must return the amount of extra arguments received. The bar must return True if the argument with the keyword magicnumber is worth 7, and False otherwise.
|
|
|
|
def foo(one, two, three, *args):
|
|
return len(args)
|
|
|
|
def bar(one, two, three, **args):
|
|
if args.get("magicnumber") == 7:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
print(foo(1, 2, 3, 4, 5, 6))
|
|
print(bar(1, 2, 3, asd = 5, magicnumber = 7)) |