Nested for loops and print statements
Terry Reedy
tjreedy at udel.edu
Mon Sep 26 02:47:26 EDT 2016
On 9/26/2016 1:59 AM, Cai Gengyang wrote:
> Why is it that you need a print() at the end to create the table for example 1:
>
> Example 1 ---
>
>>>> for row in range(10):
> for column in range(10):
> print("*",end=" ")
> # Print a blank line for next row
> print()
These indents are either 4 or 8 spaces.
The print provides a carriage return.
Each line ends with a space.
> * * * * * * * * * *
> * * * * * * * * * *
> * * * * * * * * * *
> * * * * * * * * * *
> * * * * * * * * * *
> * * * * * * * * * *
> * * * * * * * * * *
> * * * * * * * * * *
> * * * * * * * * * *
> * * * * * * * * * *
One can avoid both extra print and spaces with
for row in range(10):
for column in range(10):
print("*", end=" " if column<9 else '\n')
# or
for row in range(10):
print(' '.join(['*']*10))
# or
print((' '.join(['*']*10)+'\n')*10)
# or
for row in range(10):
print('* '*9 + '*')
# or
print(('* '*9 + '*\n')*10)
> but not for Example 2 ---
>
> for row in range(10):
> print("*",end=" ")
>
> * * * * * * * * * *
>
> When I try to do example 1 without the print() statement at the end, I get this error :
>
> for row in range(10):
> for column in range(10):
> print("*",end=" ")
These indents are 4 spaces and 1 tabs.
> SyntaxError: inconsistent use of tabs and spaces in indentation
Because you mixed tabs and spaces. Has nothing to do with print statement.
--
Terry Jan Reedy
More information about the Python-list
mailing list