I cannot figure out why the following statements dont work.
randomKey = random.choice(list(topic.keys()))
randomValue = random.choice(topic[randomKey])
current
else
, when used with while
, runs after the while expression evaluates to a falsy value if the while loop finishes by the expression being false, instead of being broken out of by a break
statement (or execution leaving the function via a return
or raise
-ing an exception). Your while condition in your second example must fail, so there's no opportunity for a break
to occur, the function to return or an exception to be thrown, so the else
statements will always run.
docs for while