Nested for loops and print statements
Jussi Piitulainen
jussi.piitulainen at helsinki.fi
Mon Sep 26 03:21:11 EDT 2016
Cai Gengyang <gengyangcai at gmail.com> writes:
> So what do i need to do to correct the error ?
>
> Regards
>
>
> On Monday, September 26, 2016 at 2:48:16 PM UTC+8, Terry Reedy wrote:
>> 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
Reindent your lines.
More information about the Python-list
mailing list