Christian Mascher wrote:
Edward Cherlin wrote:
[sigh]

Do math tables in a math array language.

degrees =. i. 91  NB. 0..90

radians =. degrees * o. % 180

table =. |: degrees, 1 2 3 o./ radians

Sorry, I don't know J (Kirby does), but this is exactly the reason I prefer Python. Readability counts (for me). For creating a table, most people would probably use a spreadsheet anyway, but as I happen to know Python, I use it for such tasks from time to time. I can even remember the syntax without having used Python for months. Don't think that would be the case with J. Not very inclined to learn that.

I agree. Clarity is important, especially with young students (and us old guys who have trouble remembering Java classes :>).

from math import sin, cos, tan, pi

rad_per_degree = pi/180
pattern = "{0:>5g}    {1:.9f}    {2:.9f}    {3:e}"

def print_trig_table(start, stop, step):

.    for degrees in range(start, stop, step):
. theta = degrees * rad_per_degree
.        data = ( degrees, cos(theta), sin(theta), tan(theta) )
.        print( pattern.format(*data) )


The only thing a little non-intuitive about this is the construct pattern.format(*data). It's the same problem as with "".join(list). It feels backwards until you really grasp the concept of these methods being associated with string objects, not with the data, which can be any of various object types.

Back to the subject of Python as a calculator, I have offered to mentor a proposal in Google Summer of Code seeking to improve IDLE. A key item is adding the ability to display graphics. This should be as easy as just pressing the GRAPH button, but also not limit students who want the full sophistication of a package like matplotlib. Suggestions are welcome.



_______________________________________________
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to