Python: cómo usar variables con nombre de una función en otras funciones

Soy un programador novato que intenta hacer un programa, utilizando Python 3.3.2, que tiene unmain() función que llamafunction1(), luego buclesfunction2() yfunction3().

Mi código generalmente se ve así:

def function1():
    print("hello")

def function2():
    name = input("Enter name: ")

def function3():
    print(name)

def main():
    function1()
    while True:
        funtion2()
        function3()
        if name == "":
            break

main()

Actualmente, recibo el siguiente error cuando ejecuto el programa y escribo un nombre:

NameError: global name 'name' is not defined

Entiendo que esto es porquename solo se define dentro defunction2(). ¿Cómo lo hago para quename se define como un 'nombre global', o de alguna manera poder usarlo dentro defunction3() ymain().

Gracias por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta