python adds an extra half space when reading froma string or list -- back to the question

Dave Angel davea at davea.name
Mon Jul 1 21:11:32 EDT 2013


On 07/01/2013 05:16 PM, rusi wrote:
> On Tuesday, July 2, 2013 1:32:44 AM UTC+5:30, Dave Angel wrote:
>>    <SNIP>

>
> Yes in this specific instance all this is probably true.
> I believe however, that Joel's intent in reposting this is more global (and important) in its scope, viz:
>
> If this list persists in the current unhealthy state which it is experiencing, authentic noob questions will get buried in mountains of bullshit.
>
> Note: I find Joshua's answer fine given the question.
>
>> If the OP has abandoned it, so should we.
>
> If you were a noob-OP who asked that question and the result unfolded as it has, what would you do?
>

Point well-taken.  So I'll see what I can do here.  I'll put comments on 
lines I had to add or change.


finale_line = []    #missing initialization
lot_number = 99

number_drawn=()
def load(lot_number,number_drawn):
     first=input("enter first lot: ")
     last=input("enter last lot: ")
     for lot_number in range(first,last):
         line_out=str(lot_number)
         for count in range(1,5):
             number_drawn=raw_input("number: ")
             line_out=line_out+(number_drawn)
         print line_out
         finale_line.append(line_out)

#finale_line2=finale_line     #not referenced

load(lot_number,number_drawn)


print finale_line
print(" "*4),
for n in range(1,41):
     print n,          #this is to produce a line of numbers to
                       #compare to output#
for a in finale_line:
     print"\n",
     print a[0]," ",
     space_count=1
     for b in range(1,5):
         if int(a[b])<10:
              print(" "*(int(a[b])-space_count)),int(a[b]),
              space_count=int(a[b])
         else:
             pass
             #print(" "*(a[b]-space_count)),a[b],   #dead code
             #space_count=a[b]+1                    #dead code

Since all the numbers are butted together in the string  line_out, the 
later logic is iterating over digits, which cannot be bigger than 9.  So 
the else clause is nonsensical.  Even if they were to run, they'd give 
runtime errors.

 > #as you can see many numbers are between the lines of a normal print#
 > #I thought this was due to "white space" int he format .So I tried  a 
 > list
 > of strings and got the same results.#

No clue what that means.  What numbers are between what lines?  And what 
is a normal print?

Presumably the intent was to somehow do a variable spacing of those digits.


-- 
DaveA



More information about the Python-list mailing list