[Tutor] Fwd: Re: Loop in pre-defined blocks

2016-06-10 Thread Alan Gauld via Tutor
Forwarding to tutor list. Always use Reply All when responding to list mail.

> Sorry, to be a little bit more descriptive. I'd like to loop from 1 to 35
> but within this loop there are divisions which I need to prefix that
> particular division number.

> My output would look like this:
>>>
1 1 
1 2 
1 3 
1 4 
1 5 
1 6 
1 7 
1 8 
1 9 
1 10 
1 11 
1 12 
2 13 
2 14 
2 15 
2 16 
2 17 
2 18 
2 19 
2 20 
3 25 
3 26 
3 27 
3 28 
3 29 
3 30 
3 31 
3 32 
3 33 
3 34 
3 35
>>>

You can't specify the blocks as just (12,20,.35) since you are using
non-contiguous blocks - you have a gap between 20 and 25.

So your definition needs to be (1,12),(13,20),(25,35) to specify
the missing rows. But you can arguably simplify the code a little:

blocks = ((1,13),(13,21),(25,36))
for prefix, block in enumerate(blocks):
 for n in range(*block):
  print prefix+1, n

its very similar to your code but using tuple expansion in range()
cleans it up a little bit and the names hopefully make the intent
clearer.

Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos



___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Loop in pre-defined blocks

2016-06-10 Thread Jignesh Sutar
Sorry, to be a little bit more descriptive. I'd like to loop from 1 to 35
but within this loop there are divisions which I need to prefix that
particular division number.

My output would look like this:

1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
2 13
2 14
2 15
2 16
2 17
2 18
2 19
2 20
3 25
3 26
3 27
3 28
3 29
3 30
3 31
3 32
3 33
3 34
3 35


On Sat, 11 Jun 2016 at 00:02 Alan Gauld via Tutor  wrote:

> On 10/06/16 23:43, Jignesh Sutar wrote:
> > Is there a better way to code the below than to specify blocks as I have.
> > Ideally I'd like to specify blocks simply as *blocks=(12,20,35)*
> >
> > blocks=[(1,12), (13,20), (25,35)]
> > for i,j in enumerate(blocks):
> > for x in xrange(blocks[i][0],blocks[i][1]+1):
> > print i+1, x
>
>
> Can you explain in English what you are trying to do.
> Working through your algorithm in my head is too much
> like hard work. At the very least show us the output.
>
> Better still explain what it means - what the data
> represents and how the outputs relate to the inputs.
>
> --
> Alan G
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
> http://www.amazon.com/author/alan_gauld
> Follow my photo-blog on Flickr at:
> http://www.flickr.com/photos/alangauldphotos
>
>
> ___
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


[Tutor] Loop blocks

2016-06-10 Thread Jignesh Sutar
Is there a better way to code the below than to specify blocks as I have.
Ideally I'd like to specify blocks simply as *blocks=(12,20,35)*

blocks=[(1,12), (13,20), (25,35)]
for i,j in enumerate(blocks):
for x in xrange(blocks[i][0],blocks[i][1]+1):
print i+1, x


Thanks in advance.
Jignesh
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Loop in pre-defined blocks

2016-06-10 Thread Alan Gauld via Tutor
On 10/06/16 23:43, Jignesh Sutar wrote:
> Is there a better way to code the below than to specify blocks as I have.
> Ideally I'd like to specify blocks simply as *blocks=(12,20,35)*
> 
> blocks=[(1,12), (13,20), (25,35)]
> for i,j in enumerate(blocks):
> for x in xrange(blocks[i][0],blocks[i][1]+1):
> print i+1, x


Can you explain in English what you are trying to do.
Working through your algorithm in my head is too much
like hard work. At the very least show us the output.

Better still explain what it means - what the data
represents and how the outputs relate to the inputs.

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


[Tutor] Loop in pre-defined blocks

2016-06-10 Thread Jignesh Sutar
Is there a better way to code the below than to specify blocks as I have.
Ideally I'd like to specify blocks simply as *blocks=(12,20,35)*

blocks=[(1,12), (13,20), (25,35)]
for i,j in enumerate(blocks):
for x in xrange(blocks[i][0],blocks[i][1]+1):
print i+1, x


Thanks in advance.
Jignesh
___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Command statement work well on interactive mode, which running as pf file it throws error object has no attribute '__getitem__'

2016-06-10 Thread Alan Gauld via Tutor
On 09/06/16 10:03, Joseph John wrote:

> itsupport@Server-A:~$ cat ReadingDataFrom1X.py
> #!/usr/bin/python
> import openpyxl
> wb = openpyxl.load_workbook('1XDataUserMDN.xlsx')
> wb.get_sheet_names()
> sheet= wb.get_sheet_by_name('SQL Results')
> sheet.title
> print sheet.title
> print sheet['A1']

I can't see anything obvious and since this is not part
of the standard library I suggest you try asking on the
support site for openpyxl.

http://groups.google.com/group/openpyxl-users

hopefully they can figure out what's happening.

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos


___
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor