calculator με ιστορικό - δοκιμή του bc
Giorgos Keramidas
keramida at ceid.upatras.gr
Fri May 19 16:08:18 EEST 2006
On 2006-05-19 15:09, Αλέξανδρος Διαμαντίδης <adia at hellug.gr> wrote:
> adia at rita ~ $ python
> Python 2.4.3 (#1, May 5 2006, 18:49:10)
> [GCC 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> 1+2+3+4+5
> 15
> >>> _*300
> 4500
> >>>
Το σκέφτηκα κι εγώ αυτό, αλλά μετά θυμήθηκα το εξής:
$ python
Python 2.3.5 (#2, Mar 6 2006, 10:12:24)
[GCC 4.0.3 20060304 (prerelease) (Debian 4.0.2-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 4.1
4.0999999999999996
>>>
Oops!
Γενικά, υπάρχουν λύσεις που να φαίνεται το προηγούμενο αποτέλεσμα, και
μάλιστα το IPython shell έχει ωραία κόλπα -- όπως, για παράδειγμα, πολύ
περισσότερα _XXX dynamic vars, με βάση τα νούμερα των Out[XXX]
αποτελεσμάτων:
$ ipython
Python 2.4.3 (#2, May 12 2006, 22:01:16)
Type "copyright", "credits" or "license" for more information.
IPython 0.7.1.fix1 -- An enhanced Interactive Python.
? -> Introduction to IPython's features.
%magic -> Information about IPython's 'magic' % functions.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
In [1]: 3
Out[1]: 3
In [2]: 3.14
Out[2]: 3.1400000000000001
In [3]: _1 + _2
Out[3]: 6.1400000000000006
In [4]:
Η Python όμως, μου φαίνεται ότι θα παραξενέψει κάποιον που πιστεύει ότι
το 4.1 είναι *ΑΚΡΙΒΩΣ* 4.1 ακόμα κι όταν αποθηκεύεται με την
floating-point αναπαράσταση που ξέρει η Python.
Φυσικά, τα νούμερα των υπολογισμών μπορούν να ΕΙΝΑΙ σωστά, αλλά η τιμή
που τυπώνεται by default θα παραξενέψει πολύ κόσμο:
In [1]: 3.1
Out[1]: 3.1000000000000001
In [2]: print "%3.5f" % _1
3.10000
In [3]: print "%3.2f" % _1
3.10
In [4]: _1
Out[4]: 3.1000000000000001
Από την άλλη, αν είναι να μάθεις Python για να τυπώσεις σωστά τα
αποτελέσματα, τότε πέτυχες το σκοπό του να έχεις ένα ωραίο interactive
calculator, αλλά δε νομίζω να μπορεί αυτό να το χρησιμοποιήσει ο Joe
Ramdom λογιστής :-(
More information about the Linux-greek-users
mailing list