# positional parameters def add_two(a,b): return a+b print(""" def add_two(a=1,b=0): return a+b """) print(f"add_two(1,4): {add_two(1,4)}") print(f"add_two(a=1,b=4): {add_two(a=1,b=4)}") print(f"add_two(-1,40): {add_two(-1,40)}") def add_two_with_default(a=1,b=2): return a+b print(""" def add_two_with_default(a=1,b=2): return a+b """) print(f"add_two_with_default(1,4): {add_two_with_default(1,4)}") print(f"add_two_with_default(a=1,b=4): {add_two_with_default(a=1,b=4)}") print(f"add_two_with_default(-1,40): {add_two_with_default(-1,40)}") print(f"add_two_with_default(8): {add_two_with_default(8)}") print(f"add_two_with_default(b=1): {add_two_with_default(b=1)}") print(f"add_two_with_default(): {add_two_with_default()}") # Positional parameters and keyworded (named) parameters. # A parameter has a position and a name. def introduce(name, age): print(f"My name is {name} and I am {age} years old.") return 'done' print(""" def introduce(name, age): print(f"My name is {name} and I am {age} years old.") return 'done' """) print(f"introduce('Jane', 19): {introduce('Jane', 19)}") print(f"introduce(19,'Jane'): {introduce(19,'Jane')}") print(f"introduce(name='Jane', age=19): {introduce(name='Jane', age=19)}") print(f"introduce(age=19,name='Jane'): {introduce(age=19,name='Jane')}")