Program that multiplies numbers over and over Would appreciate a review on this. The program does work as it is intended to. However I am unsure if there is a more elegant or better way to execute this process with less code. 

def main():

    print ('This program takes two numbers and multiplies them.') 
    print ('the result is multiplied by a third number') 
    print ('entered by the user too') 

    procedure()

def procedure():

    n = float(input('Enter a number: '))
    n2 = float (input('Enter a number: '))        
    value = n * n2
    y = value
    print value

    n3 = float(input('Multiply by: '))

    while n3 != '0':

        op = n3 * y  
        y = op        
        print y

        n3 = float(input('Multiply by: '))

main()
Your program makes inconsistent use of Python 2 and 3. For 3.x you need print('Hello World!'), for 2.x you need print 'Hello World!'. I'm guessing that you are using 2x because you say your program works and print value (as above) only works in 2.x. Note that in 2.x, input(prompt) is equivalent to eval(raw_input(prompt)). In 3.x, input() now means raw_input() and raw_input() has been removed. Given 2.x, your code already eval()s input, no you don't need float(). However, float(raw_input()) is safer so I'll use that below. Also, the use of n3 != '0' never works because n3 is a float not a string. Finally, I've cleaned up the variable names and removed unnecessary assignments.

number1 = float(raw_input('Enter a number: '))
number2 = float(raw_input('Enter a number: '))
result = number1 * number2

print(result)

number3 = float(raw_input('Multiply by: '))

while not number3 == 0:
    result2 = number3 * result
    print result2

    number3 = float(raw_input('Multiply by: '))