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

Reply via email to