Along similar lines, you could also use the fact that Python does
lazy-evaluation to make a do-while which forward-references variables:
```
enter_dw = True
while enter_dw or (condition_with_vars_not_defined_the_first_time_through):
enter_dw = False
define_those_vars()
```
Sketch of a use case: get user to input a number greater than 3.
```
enter_dw = True
while enter_dw or x <= 3:
enter_dw = False
x = int(input("enter a number greater than 3: "))
```
Though the enter_dw variable is a bit clunky.
Tangentially, using this same pattern you could also turn `for x in range(10)`
into a C-style for loop
```
x = 0
while x < 10:
do_something()
x += 1
```
so you have more control of x inside the loop (ie not just incrementing each
cycle like the range).
---- On Tue, 01 Mar 2022 12:59:26 -0600 Kevin Mills <[email protected]>
wrote ----
> If you don't like:
>
> while True:
> ...
> if whatever:
> break
>
> One thing I've seen people do is:
>
> condition = True
> while condition:
> ...
> condition = whatever
>
> You can use it if you really hate `while True` loops with `break`.
> _______________________________________________
> Python-ideas mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/[email protected]/message/4BSR3YI7HBD3DOAXQ7GA7XCVJUP7Z4B2/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/6QNARUGFAWOEI7JFBJAMWCGKH4TZQMA7/
Code of Conduct: http://python.org/psf/codeofconduct/