VPython Be careful with exec and eval in Python written on Tuesday, February 1, 2011 One of the perceived features of a dynamic programming language like Python is the ability to execute code from a string. In fact many people are under the impression that this is the main difference between something like Python and C#. That might have been true when the people compared Python to things like C. Wait what. This post was inspired by a discussion on reddit about the use of the execfile function in the web2py web framework but also applies to other projects. Disclaimer beforehand: the numbers for this post are taken from Python 2.7 on OS X. Behind the Scenes of Imports Let's start with everybody's favourite topic: Performance. it locates the module (surprise). Now first of all, none of the above steps ever passed a string to the exec keyword or function. >>> code = compile('a = 1 + 2', '<string>', 'exec')>>> exec code>>> print a3 As you can see, exec happily executes bytecode too. Why should you do that? Performance Characteristics
Matplotlib matplotlib: python plotting — Matplotlib v1.0.1 documentation PEP 8 -- Style Guide for Python Code Code should be written in a way that does not disadvantage other implementations of Python (PyPy, Jython, IronPython, Cython, Psyco, and such).For example, do not rely on CPython's efficient implementation of in-place string concatenation for statements in the form a += b or a = a + b. This optimization is fragile even in CPython (it only works for some types) and isn't present at all in implementations that don't use refcounting. In performance sensitive parts of the library, the ''.join() form should be used instead. This will ensure that concatenation occurs in linear time across various implementations.Comparisons to singletons like None should always be done with is or is not, never the equality operators.Also, beware of writing if x when you really mean if x is not None -- e.g. when testing whether a variable or argument that defaults to None was set to some other value. The other value might have a type (such as a container) that could be false in a boolean context!
Python for Scientists In reaction to several colleagues asking about Python , I thought a webpage would be more useful than giving an exhaustive rundown on Python verbally. Python is a script based language that allows programmers/scientists to get their algorithms and functions working in little or no time. A large number of modules and wrappers are being built for Python, like RPy and Scipy , to allow advanced tools and faster processing speeds to be implemented. Plotting modules and programs are also in wide use among Python users. The wide array of tools that can be used for plotting provides great flexibility. Getting to Know Python If you're not too familiar with Python, the links below will help you learn the Python language. How to Think Like a Computer Scientist Detailed tutorial on Python Instant Python Installers for Extras This section is primarily for people who use OS X as their main environment to work in. Fink MacPorts Easy Install Enstaller Programming Environments IPython TextMate Scipy Numpy RPy PyRAF
Big A Little i (Practical Artificial Intelligence in Python) by Tendayi Mawushe for EuroPython 2012 These days it is difficult for software to meet users’ expectations to behave intelligently. When a program displays a lack of even the most basic awareness of context it is jarring. At the same time organisations are seeking to gain a competitive advantage through software that behaves adaptively based on the information at hand. Solving these problems is a challenge for today’s developers. There is general agreement among seasoned developers that having a good understanding of basic computer science data structures and algorithms is essential.