Arguments: positional, keyword, *args
Parameters can be positional, given defaults, or accept a variable number of arguments:
def summary(*args, **kwargs):
print(args) # tuple of positional
print(kwargs) # dict of keyword
summary(1, 2, name="Ada")
args collects extra positionals into a tuple; *kwargs collects keyword args into a dict.