On 10/3/2017 2:10 PM, Peter Otten wrote:
Stefan Ram wrote:

   Is this the best way to write a "loop and a half" in Python?

[snip while loop]

Use iter() and a for loop:

def input_int():
...     return int(input("Enter number (0 to terminate): "))
...
for x in iter(input_int, 0):
...     print(f"Square = { x**2 }")
...
Enter number (0 to terminate): 1
Square = 1
Enter number (0 to terminate): 2
Square = 4
Enter number (0 to terminate): 0

I think this is the best answer. Using a for loop cleanly separates the source of a sequence of objects from processing the objects. While loop raret in Python as they are only needed for other patterns, such as 'while mutable object is not in the state we want: modify some more', and the number of modifications needed is not necessarity known ahead of time.

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to