Normally you call a function and write it’s arguments respectively.

But you can also do it differently; add-ons include:

def f(a, b=10, c=100):  # Default value
	print(a,b,c)
f(5)  # Result: 5+10+100=115
f(10,15)  # Result: 10+15+100=125
f(10,c=15)  # Result: 10+10+15=35
f(*[3,5,8])  # Passes 3,5,8 as arguments
f(**{'a':3,'c':8})  # Passes a=3,c=8 as arguments
f(*[5],b=10,**{'c':10})  # Passes 5,b=10,c=10 as arguments
def g(normal_argument,not_required=0,*arguments,**keyword_arguments):
	print(normal_argument,not_required,arguments,keyword_arguments)
g(0,*[3,5,7,6,3],**{'a':3,'b':8})
# Result: 0 3 (5, 7, 6, 3) {'a': 3, 'b': 8}
# 3 became in b