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
--
https://mail.python.org/mailman/listinfo/python-list