[Python-ideas] PEP 3150 (statement local namespaces) updated based on April discussion
Terry Reedy
tjreedy at udel.edu
Mon Jun 13 22:09:18 CEST 2011
On 6/13/2011 12:59 PM, geremy condra wrote:
> On Sun, Jun 12, 2011 at 2:20 PM, Terry Reedy<tjreedy at udel.edu> wrote:
>> 'Given' or 'where' constructs are sometimes used in mathematical writings,
>> especially formula exposition, but they typically, if not always, are
>> isolated (like the examples in the PEP), and not part of a code sequence. So
>> this is notreally a precedent to me. Example:
>>
>> fv = p * (1 + i/12)**t... , where
>> fv = present value
>> p = principle
>> i = nominal annual interest rate
>> t = time in months
>>
>> -(1+whatever)
>
> I've historically been in favor of this kind of proposal specifically
> because I'd like to be able to write the above code,
Part of my point is that the above is not *code* (and hence not an
argument for formatting code that way). It is a text definition. Someone
who wrote something like the above might very well then write a *code*
version the equivalent of
p = input("principle: ")
i = input("nominal annual interest rate: ")
t = input("time in months: ")
print("Future value of ${} at {}% after {} months is ${}"
.format(p, i, t, p*(1+i/12)**t
> but I have to
> admit that many of the examples given in the PEP terrify me. The point
> of exposition like this is to enhance readability by making the flow
> of information (defined by the equation on the first line) extremely
> clear; tucking functions and classes with their own flow into the
> out-of-order block just makes it really hard to figure out what's
> happening where and when.
I obviously agree with all this.
--
Terry Jan Reedy
More information about the Python-ideas
mailing list