Velocity Reviews > Re: python adds an extra half space when reading froma string orlist -- back to the question

# Re: python adds an extra half space when reading froma string orlist -- back to the question

Dave Angel
Guest
Posts: n/a

 07-01-2013
On 07/01/2013 03:32 PM, Joel Goldstick wrote:
> I copied the original question so that the rant on the other thread
> can continue. Let's keep this thread ontopic
>
>
> 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
>
>
>
> 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:
> print(" "*(a[b]-space_count)),a[b],
> space_count=a[b]+1
>
>
>
>
>
>
>
>
>

<Duplicate code removed>

>
>
>
> this generates
> <type 'list'>
> enter first lot: 1
> enter last lot: 4
> number: 2
> number: 3
> number: 4
> number: 5
> 12345
> number: 1
> number: 2
> number: 3
> number: 4
> 21234
> number: 3
> number: 4
> number: 5
> number: 6
> 33456
> ['12345', '21234', '33456']
> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
> 27 28 29 30 31 32 33 34 35 36 37 38 39 40
> 1 2 3 4 5
> 2 1 2 3 4
> 3 3 4 5 6
>> #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.#
>

But what was the expected output? And who cares? The code made no
sense, was incomplete, and the posted question was nonsensical.

If the OP has abandoned it, so should we.

--
DaveA

rusi
Guest
Posts: n/a

 07-01-2013
On Tuesday, July 2, 2013 1:32:44 AM UTC+5:30, Dave Angel wrote:
> But what was the expected output? And who cares? The code made no
> sense, was incomplete, and the posted question was nonsensical.

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?

Dave Angel
Guest
Posts: n/a

 07-02-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

finale_line = [] #missing initialization
lot_number = 99

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

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

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