On Wed, Jul 28, 2010 at 6:11 AM, Evert Rol <evert....@gmail.com> wrote:
> Sorry, forgot to reply-to-all:
>
>
> I don't know the book nor the exercise, but see my comments interspersed in 
> the code, and a few general remarks at the bottom
>
>> From a practice exercise in Building Skills In Python page 64 I'm
>> working on How Much Does The Atmosphere Weigh? Part 1:
>> To check it states that the answer should be app. 10**18kg However,
>> and I've checked to make sure that the math I've layed out matches up
>> with the texts, I get 5.07360705863e+20
>>
>> In the code I have broken the order of operations down to more
>> parenthetical, and tried outright, but see nothing obvious about how
>> it's strung together. If anyone has had a similar experience with the
>> problem given, or see anything blatantly obvious I've done wrong with
>> the ordering of operations. I tried to include as much of the
>> problem(formulas are just above variables they're used in) as comments
>> as possible.
>>
>> import math
>> def atmosphereWeight():
>>   pi = math.pi
>>   """Air Pressure (at sea level) P0. This is the long-term average.
>>   P0 = 1.01325 × 10**5"""
>>   airPressCLevl = 1.01325*(10**5)
>>   gravity = 9.82
>>   """We can use g to get the kg of mass from the force of air
>> pressure P0. Apply the acceleration of gravity
>>   (in m/sec2) to the air pressure (in kg · m/sec2). This result is
>> mass of the atmosphere in kilograms per
>>   square meter (kg/m2).
>>   Mm2 = P0 × g"""
>>   masAtmoInKgPerSqM = airPressCLevl * gravity
>
> Simply from looking at the units left and right of the equality sign, you'll 
> need to *divide* by g, not multiply: [kg] = [kg m / s^2] / [m / s^2]
>
>
>>   """Given the mass of air per square meter, we need to know how
>> many square meters of surface to apply
>>   this mass to. Radius of Earth R in meters, m. This is an average
>> radius; our planet isn’t a perfect sphere.
>>   R = 6.37 × 10"""
>>   avgRadiusEarth = 6.37 * (10**6)
>>   """The area of a Sphere.
>>   A = 4πr2"""
>>   areaSphere = 4 * pi * (avgRadiusEarth**2)
>>   """Mass of atmosphere (in Kg) is the weight per square meter,
>> times the number of square meters
>>   Ma = P0 × g × A"""
>>   masEarthAtmoInKgPerSqM = airPressCLevl * gravity * areaSphere
>
> ditto here: divide by gravity, not multiply by it.
>
>
>>   print(masEarthAtmoInKgPerSqM)
>>
>> atmosphereWeight()
>
>
> Few general remarks:
> - the standard way of writing numbers with a power of ten in code is 
> something like 1.01325e5. I guess this is also easier/quicker to execute (not 
> that this code is time-critical, but in general)

I'll probably ending up reading something about it later in the book,
but as a quick question, why does:

>>> 5e18 == 5**18
False
>>> int(5e18) == int(5**18)
False
>>> 1.01325e5 == 1.01325**5
False

> - why do you assign masTmoInKgPerSqM, then later not use it when calculating 
> masEarthAtmoInKgPerSqM?

I turned all of the formulas given into a variables, however in
masEarthAtmoInKgPerSqM it would have been neater to use
masTmoInKgPerSqM * areaSphere, instead of reusing the two variables
again in .masEarthAtmoInKgPerSqM.


> - just use math.pi when calculating areaSphere, instead of "pi = math.pi" and 
> then later using pi. For me, that's just as clear.
> - no need to put parentheses around powers; they are evaluated before the 
> multiplication (unless this is what you meant by "to more parenthetical"

Yes, it was just to break it into smaller, more readable, pieces.

> - try indenting the comments as well; more readable

It looked better when color coded in the editor, but not here in black
and white.

>
> Probably not all of the above are necessary, if you wrote this for debugging 
> your problem, but they're just some thoughts that occurred to me.
>
> Enjoy your calculations.

Will the 'fun' never end?
> _______________________________________________
> Tutor maillist  -  tu...@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to