Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!feeder.news-service.com!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'confuse': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:80.91.229.12': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'received:lo.gmane.org': 0.09; 'def': 0.15; 'assignment.': 0.16; 'bieber': 0.16; 'case...': 0.16; 'declaimed': 0.16; 'email addr:ix.netcom.com': 0.16; 'email name:wlfraed': 0.16; 'from:addr:ix.netcom.com': 0.16; 'from:addr:wlfraed': 0.16; 'from:name:dennis lee bieber': 0.16; 'lowercase': 0.16; 'received:66.245': 0.16; 'received:dsl.mindspring.com': 0.16; 'received:mindspring.com': 0.16; 'received:wlfraed': 0.16; 'url:netcom': 0.16; 'url:wlfraed': 0.16; 'weapon': 0.16; 'wulfraed': 0.16; 'language': 0.17; '>>>': 0.18; 'url:home': 0.21; 'sep': 0.23; 'lee': 0.28; 'sat,': 0.28; 'basically,': 0.30; 'construct': 0.30; '(including': 0.30; 'list': 0.32; 'mass': 0.32; 'word.': 0.32; 'to:addr:python-list': 0.33; 'done': 0.34; 'header:X-Complaints-To:1': 0.35; 'anything': 0.36; 'charset:us- ascii': 0.36; 'doing': 0.36; 'skip:" 10': 0.36; 'received:org': 0.38; 'some': 0.38; 'subject:: ': 0.39; 'header:Mime-Version:1': 0.39; 'else': 0.39; 'goes': 0.39; 'to:addr:python.org': 0.39; 'stop': 0.61; 'lower': 0.64; 'taking': 0.66; 'account': 0.66; 'taught': 0.71; 'dennis': 0.77; 'justifying': 0.84 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Dennis Lee Bieber Subject: Re: Doctest failing Date: Sat, 10 Sep 2011 23:18:21 -0700 Organization: > Bestiaria Support Staff < References: <678b89fd-82f4-4080-8b36-e4d0ba30cdbf@o9g2000vbo.googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Gmane-NNTP-Posting-Host: user-11fa4e5.dsl.mindspring.com X-Newsreader: Forte Agent 3.3/32.846 X-No-Archive: YES X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 44 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1315721914 news.xs4all.nl 2537 [2001:888:2000:d::a6]:49832 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:13117 On Sat, 10 Sep 2011 16:25:42 -0700, Dennis Lee Bieber declaimed the following in gmane.comp.python.general: > > in the language documentation... It will give you a simple way to know > if you are looking at the first word. Basically, you want to title-case > the word IF it is the first word OR the word is NOT in the list of > lowercase words; anything else goes through as lower case... Of course, most of this can be done in a single line (including taking into account that some words may have a punctuation mark which would confuse the original). >>> smalls = ['into', 'the', 'a', 'of', 'at', 'in', 'for', 'on' ] >>> punct = ".,;:?!;'\"(){}[]" >>> def recase(str = "physicist odd-affection, or how i was taught to stop fretting and adore the weapon of mass destruction"): ... return " ".join( w.title() if i == 0 or w.strip(punct) not in smalls else w ... for i,w in enumerate(str.lower().strip().split()) ) ... >>> recase() 'Physicist Odd-Affection, Or How I Was Taught To Stop Fretting And Adore the Weapon of Mass Destruction' >>> recase("what? me worry?") 'What? Me Worry?' >>> recase("the end of the matter is, to be blunt, a confusion") 'The End of the Matter Is, To Be Blunt, a Confusion' >>> recase("the end of the matter is in, to be blunt, a confusion") 'The End of the Matter Is in, To Be Blunt, a Confusion' >>> smalls = ['into', 'the', 'a', 'of', 'at', 'in', 'for', 'on', "and", "is", "to" ] >>> recase() 'Physicist Odd-Affection, Or How I Was Taught To Stop Fretting and Adore the Weapon of Mass Destruction' >>> recase("the end of the matter is in, to be blunt, a confusion") 'The End of the Matter is in, to Be Blunt, a Confusion' >>> Of course, explaining what this construct is doing is the trick to justifying it for a homework assignment. -- Wulfraed Dennis Lee Bieber AF6VN wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/