Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Unexpected ininite loop behavior
#1
Hi, I'm trying to code a basic while True loop, but I get an infinite loop whether or not I use the continue statement (after I purposely enter invalid data to test the loop):

#!/usr/bin/env python3

print("Welcome to the Miles Per Gallon Program.")
print()

milesDriven = float(input("Enter miles driven:               "))
gallonsUsed = float(input("Enter the number of gallons used: "))


while True:
    if milesDriven > 0 and gallonsUsed > 0:
        mpg = round((milesDriven / gallonsUsed),2)
        print("Miles Per Soul... uh... Gallon: ",mpg)
        break
    else:
        print("Both entries must be greater than 0. Please Try again.")
        continue
What's wrong?
Quote
#2
while True is by default infinite and since your input statements are outside of the loop, you have no way of satisfying the break condition if it isn't true upon entry.
You need to move the inputs to inside of while loop
Quote
#3
Thanks for the quick response. It works now:
#!/usr/bin/env python3

print("Welcome to the Miles Per Gallon Program.")
print()

while True:
    milesDriven = float(input("Enter miles driven:               "))
    gallonsUsed = float(input("Enter the number of gallons used: "))
    if milesDriven > 0 and gallonsUsed > 0:
        mpg = round((milesDriven / gallonsUsed),2)
        print("Miles Per Soul... uh... Gallon: ",mpg)
        break
    else:
        print("Both entries must be greater than 0. Please Try again.")
        continue
Quote
#4
just to add that continue is not necessary in this case
Quote
#5
while (True) is infinite by default.
The value of the 2 variables are outside the loop and if you enter the values less than 0,it goes into an infinite loop
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Unexpected round behavior pythonCoder 1 275 Feb-19-2019, 02:39 PM
Last Post: marienbad
  A little unexpected output from a while loop linuxnoob 3 638 Jul-17-2018, 01:02 AM
Last Post: gontajones
  Unexpected input in While Loop fier259 1 537 May-07-2018, 12:47 AM
Last Post: woooee
  Unexpected behavior appending to a List of Dictionaries Nomad 2 698 Apr-03-2018, 04:22 AM
Last Post: Nomad

Forum Jump:


Users browsing this thread: 1 Guest(s)