Path: csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!cs.uu.nl!news0.firedrake.org!news.xcski.com!ncf.ca!not-for-mail From: "Colin J. Williams" Newsgroups: comp.lang.python Subject: Re: Yet another Python textbook Date: Thu, 22 Nov 2012 07:24:38 -0500 Organization: National Capital Freenet, Ottawa, Ontario, Canada Lines: 66 Sender: fn681@dsl-153-214.b2b2c.ca Message-ID: <50AE1986.2080605@ncf.ca> References: <31a82817-8c9b-4dd2-a468-89d8d081fd1b@googlegroups.com> <50AD0962.5080002@ncf.ca> NNTP-Posting-Host: dsl-153-214.b2b2c.ca Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: theodyn.ncf.ca 1353587080 3139 66.158.153.214 (22 Nov 2012 12:24:40 GMT) X-Complaints-To: complaints@ncf.ca NNTP-Posting-Date: 22 Nov 2012 12:24:40 GMT Cc: rosuav@gmail.com User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/17.0 Thunderbird/17.0 In-Reply-To: Xref: csiph.com comp.lang.python:33798 From Yet another Python textbook On 21/11/2012 5:17 PM, Chris Angelico wrote: > On Thu, Nov 22, 2012 at 4:03 AM, Colin J. Williams wrote: >> On 20/11/2012 4:00 PM, Chris Angelico wrote: >>> To the OP: jmf has an unnatural hatred of Python 3.3 and PEP 393 >>> strings. Take no notice; the rest of the world sees this as a huge >>> advantage. Python is now in a VERY small group of languages (I'm aware >>> of just one other) that have absolutely proper Unicode handling *and* >>> efficient string handling. >>> >>> ChrisA >>> >> It's interesting to see that someone else finds the format function to be a >> pain. Perhaps the problem lies with the documentation. > > Hang on, what? I'm not sure where the format function comes in. I was > referring to the underlying representation. The OP wrote: "The absurd flexible string representation has practically borrowed the idea to propose once Python has a teaching tool." I perhaps stretched this to refer specifically on one aspect, formatting in my comment. > > That said, though, I'm just glad that %-formatting is staying. It's an > extremely expressive string formatting method, and exists in many > languages (thanks to C's heritage). Pike's version is insanely > powerful, Python's is more like C's, but all three are compact and > convenient. > > str.format(), on the other hand, is flexible. It strikes me as rather > more complicated than a string formatting function needs to be, but > that may be a cost of its flexibility. > > ChrisA Yes is is complicated. From my reading of the docs, it seems to me that the three following should be equivalent: (a) formattingStr.format(values) with (b) format(values, formattingStr) or (c) tupleOfValues.__format__(formattingStr Example: print('{:-^14f}{:^14d}'.format(-25.61, 95 )) print(format((-25.61, 95), '{:-^14f}{:^14d}')) (-25.61, 95 ).__format__('{:-^14f}{:^14d}') The second fails, perhaps because values can only be a single value. The third fails, the reason is unclear. Steven D'Aprano earlier said that a better diagnostic tool is planned for Python 3.4. Should we retreat to %-formatting for now? Colin W. >