DEV Community

How to fix an Endless Loop in Python?

crhodes on October 17, 2017

Hello, This is my first time here on dev.to. I need some help fixing a code. See I'm learning Python from scratch and created this simple game pro...
Collapse
 
mkartic profile image
mkartic

Hi,
You have assigned 'rolling_again' to 'yes' at the start of your program. Once you enter the 'while' loop, rolling_again's value is not changed in any way.

You have to put the entire block of code starting from the if condition to end of the program inside the while loop. That way, each iteration, you can get user input and proceed based on that.

Hope this helps.

Collapse
 
crhodes2 profile image
crhodes

Yes! It works! Thank you!

Collapse
 
codemouse92 profile image
Jason C. McDonald

Regarding the random numbers, you need to seed random with a changing number. Not seeding, or always seeding with the same number, will result in the same random numbers being produced.

So, the most common way around this is to use the current time to seed random.

import random
from datetime import datetime
random.seed(datetime.now())

(Disclaimer: While this is what I've used for years in Python, I double-checked the exact syntax like I always do. This version comes from this StackOverflow answer)

Collapse
 
crhodes2 profile image
crhodes

It also worked out. Thank you!

Collapse
 
tcratius profile image
Me, myself, and Irenne

My favourite is sticking this in the loop to stop it and ask for user input.

action = rawinput(" > ")

Collapse
 
tcratius profile image
Me, myself, and Irenne

the other one I like using is, While not True, than in side your if statement make it True once you've done what you want.

Collapse
 
kajigga profile image
Kajigga

On the topic of endless loops, try out Florian Rohrer's Endless Loop Challenge. It was a fun exercise.

Collapse
 
crhodes2 profile image
crhodes • Edited

Just checked it out, and posted my own code there. It's fun! :D