简体   繁体   中英

Why does't my code print the output?

    multiple_one = 3.0
multiple_two = 5.0
multiple_answer = 1
while ( multiple_answer < 1000):
     number_of_multiples = 0
     checking_multiple = 1000.0
     if  (checking_multiple / multiple_one).is_integer:
         number_of_multiples += 1
     elif (checking_multiple / multiple_one).is_integer:
         number_of_multiples += 1
     checking_multiple -= 1 
print number_of_multiples

My code is suppose to print out how many multiples there are but keeps failing. Why is that ?

Your program is getting stuck in an infinite loop. You start looping here:

while ( multiple_answer < 1000):

but never update multiple_answer so your loop never finishes.

You are never changing multiple_answer so it is always less than 1000 so you are stuck in an infinite loop in the while statement. Do you want to count the number of times you multiplied? If so, you want to change

multiple_one = 3.0
multiple_two = 5.0
multiple_answer = 1
while ( multiple_answer < 1000):
     number_of_multiples = 0
     checking_multiple = 1000.0
     if  (checking_multiple / multiple_one).is_integer:
         number_of_multiples += 1
     elif (checking_multiple / multiple_one).is_integer:
         number_of_multiples += 1
     checking_multiple -= 1 
print number_of_multiples

to be:

multiple_one = 3.0
multiple_two = 5.0
multiple_answer = 1
while ( number_of_multiples < 1000):
     checking_multiple = 1000.0
     if  (checking_multiple / multiple_one).is_integer:
         number_of_multiples += 1
     elif SOMETHING_DIFFERENT:
         SOMETHING_ESLE_DIFFERENT 
print number_of_multiples

This way you are not resetting number_of_multiples in each iteration and you are checking the while loop against something that is changing based on the iteration.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM