[Bjorn Pettersen] > We're currently in the process of adapting Python as the common > scripting plug-in for all of our projects (and it's working great :-). > We're standardizing on 2.2.1, and unless there is a pressing business > need, we'll probably stay with that version for the next 18-24 months. > > My question is if it's intended for users to start using true division > _now_? The reason I'm inclined to do so is that we're going to have > snippets of Python code everywhere, including our libraries, disk files, > and databases -- it would be a major undertaking to find and fix this > later... Nevertheless, I recommend you not try to enable true division now. Part of the joy of Python is sharing the many libraries and extension modules people freely provide, and so far nothing except the core distribution is tested with true division enabled -- and even in the core, true division is tested sporadically and lightly. You don't want to be a pioneer here, unless advancing true division is your business <wink>. That said, in 2.2.x, you can start using // *now* when you intend flooring integer division. That's already implemented. 5/3 will also produce 1 for now, but don't do it -- do 5//3 instead. Also read the PEP: http://www.python.org/peps/pep-0238.html Guido has implemented some quite elaborate mechanisms to help with the transition, and if you start using i//j now you *should* have a very easy time when Python 3 changes the rules (indeed, you shouldn't need any division changes later, provided you use // now). The simplest of the mechanisms is -Qwarn: C:\Python22>type div.py print 4/3 C:\Python22>python div.py 1 C:\Python22>python -Qwarn div.py div.py:1: DeprecationWarning: classic int division print 4/3 1 C:\Python22> So, if you like, Python will already warn you about division cases that will act differently someday. You can examine them now to determine what you really intended, and use // now when you intend a truncated result: C:\Python22>type div2.py print 4//3 C:\Python22>python -Qwarn div2.py # no warning produced 1 C:\Python22> Likewise when you intend a floating-point result, you can do something now to ensure that (spelling it float(i)/j is one easy way).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4