Python variables aren't typed. The result type is determined by the value (in Perl, it's usually determined by the operator). Float-vs-int-division is one of the annoying unnecessary incompatibilities in python3.
> python2.7 -c 'print(5/2)'
2
> python3.5 -c 'print(5/2)'
2.5
| [reply] [d/l] |
Well I prefer the Py3 behaviour.
YMMV
:)
| [reply] |
I guess most people do, but I don't care for it. If I have an integer, I need to use // to divide, or it gets converted to a float. If I have a Fraction, I need to use /, or it gets converted to an integer. You say, "but // always produces an integer, that's so much easier." But I don't see why there has to be a special operator devoted to integers.
>>> from fractions import Fraction
>>> x = Fraction(22,7)
>>> y = 3
>>> print(x,x/2,x//2)
22/7 11/7 1
>>> print(y,y/2,y//2)
3 1.5 1
| [reply] [d/l] |
Precisely why Python is faster than Perl at runtime. If you would spend your energy learning new tools instead of cursing them ... oh right ... we are talking about LanX. | [reply] |