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