for loop troubles
Greg Jorgensen
gregj at pobox.com
Mon Apr 30 01:57:48 EDT 2001
More information about the Python-list mailing list
Mon Apr 30 01:57:48 EDT 2001
- Previous message (by thread): for loop troubles
- Next message (by thread): for loop troubles
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In article <3AE8EFCC.CEFCF61F at nmt.edu>, "Jeff Shipman" <shippy at nmt.edu> wrote: > I've used this method before to do funky for loop stuff, but for some > reason, I'm getting a line skipped this time. > > What I'm trying to do is convert items that have one or more tabs at the > beginning of a line followed by a * into unordered list HTML. If I ever > hit more tabs than I'm currently at, I must be in a sublist so I call > this function recursively. It all works great except when I come out of ...snip... Simplify. Try this: def printlist(lines): "print lines starting with <tab>* as HTML nested unordered lists" depth = 0 indent = " " # spaces to indent HTML for line in lines: # does line begin with one or more tabs followed by *? i = line.find("*") if i >= 0 and line[0:i] == ("\t" * i): if i > depth: # increase indent print (indent * depth) + "<UL>" depth += 1 elif i < depth: # decrease indent depth -= 1 print (indent * depth) + "</UL>" print (indent * depth) + "<LI>" + line[i+1:] else: # no leading tabs, output line as-is print (indent * depth) + line # close all lists while depth > 0: depth -= 1 print (indent * depth) + "</UL>" Greg Jorgensen PDXperts LLC gregj at pobox.com
- Previous message (by thread): for loop troubles
- Next message (by thread): for loop troubles
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list