#!/usr/bin/env python3

# pass can be used also in for-loops
def nothingToDo():
  pass

# default argument, call by value
def flower(name='Iris'):
  print("my favorite flower is the ", name)
  name = "Orchid"

# list of arguments of arbitrary length
def allArgs(*args):
  for i in range(n:=len(args)):
    print(i, args[i])
  return n

# when using keys, the oder of calling does not matter
def keyFlowers(f3, f2, f1):
  print(f1, f2, f3)

print("*************")
print("call by value")
print("*************")
nothingToDo()
flower()
flower()
flower("Rose")

print()
myFlower = "Lily"
flower(myFlower)
print(myFlower)

print()
print("****************************")
print("arbirary number of arguments")
print("****************************")
print("argsLength: ", allArgs("Daffodil", "Dahlia", "Daisy"))

print()
print("*******************")
print("arguments with keys")
print("*******************")
# order does not matter with keys
keyFlowers(f2="Lavender", f1="Aster", f3="Poppy")
