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) - why do you assign masTmoInKgPerSqM, then later not use it when calculating 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" - try indenting the comments as well; more readable 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. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor