Stefan Ram wrote: > Is this the best way to write a "loop and a half" in Python? > > x = 1 > while x: > x = int( input( "Number (enter 0 to terminate)? " )) > if x: > print( f'Square = { x**2 }' ) > > In a C-like language, one could write: > > while x = int( input( "Number (enter 0 to terminate)? " )) > print( f'Square = { x**2 }' )
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 >>> -- https://mail.python.org/mailman/listinfo/python-list