background preloader

The History of Python

The History of Python
Related:  Py:Education

Neopythonic BeginnersGuide New to programming? Python is free and easy to learn if you know where to start! This guide will help you to get started quickly. Chinese Translation New to Python? Read BeginnersGuide/Overview for a short explanation of what Python is. Getting Python Next, install the Python interpreter on your computer. There are also Python interpreter and IDE bundles available, such as Thonny. There are currently two major versions of Python available: Python 2 and Python 3. See BeginnersGuide/Download for instructions to download the correct version of Python. At some stage, you'll want to edit and save your program code. Learning Python Next, read a tutorial and try some simple experiments with your new Python interpreter. If you have never programmed before, see BeginnersGuide/NonProgrammers for a list of suitable tutorials. Most tutorials assume that you know how to run a program on your computer. Once you have read a tutorial, you can browse through Python's online documentation. Need Help?

Probably Overthinking It: Regression with Python, pandas and StatsModels I was at Boston Data-Con 2014 this morning, which was a great event. The organizer, John Verostek, seems to have created this three-day event single-handedly, so I am hugely impressed. Imran Malek started the day with a very nice iPython tutorial. The description is here, and his slides are here. And Imran very kindly let me use his laptop to project slides for my talk, which was next. Regression is a powerful tool for fitting data and making predictions. As an example, I will use data from the National Survey of Family Growth to generate predictions for the date of birth, weight, and sex of an expected baby. This talk is appropriate for people with no prior experience with regression. And here are my slides: The material for this talk is from the second edition of Think Stats, which is in production now and scheduled for release in early November. As I expected, I prepared way more material than I could present. I believe video of the talk will be available soon.

Code Like a Pythonista: Idiomatic Python In this interactive tutorial, we'll cover many essential Python idioms and techniques in depth, adding immediately useful tools to your belt. There are 3 versions of this presentation: ©2006-2008, licensed under a Creative Commons Attribution/Share-Alike (BY-SA) license. My credentials: I am a resident of Montreal,father of two great kids, husband of one special woman,a full-time Python programmer,author of the Docutils project and reStructuredText,an editor of the Python Enhancement Proposals (or PEPs),an organizer of PyCon 2007, and chair of PyCon 2008,a member of the Python Software Foundation,a Director of the Foundation for the past year, and its Secretary. In the tutorial I presented at PyCon 2006 (called Text & Data Processing), I was surprised at the reaction to some techniques I used that I had thought were common knowledge. Many of you will have seen some of these techniques and idioms before. These are the guiding principles of Python, but are open to interpretation. import this

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!

The Python I Would Like To See This post is surprisingly confused, it is phrased as a complaint about the language, then immediately degrades into CPython implementation specifics that have little bearing on the usability of the language itself. Ronacher should also know better than to post microbenchmarks like the one provided here, especially without corresponding (C) profiler output. At the C level, slots allow the implementation constant-time access to the most common code paths for an object, and especially when you have C code calling other C code via the type system (IMHO the primary use for Python, and still its strongest use case), "interpreter overhead" is reduced to a few extra memory indirection operations. In the alternative world, sure, perhaps some microbenchmark may behave faster, but now systemically, and for e.g. "reduce(operator.add, range(1000))" requires more hash table lookups than I can count.

Object oriented programming HomeContents In this part of the Python programming tutorial, we will talk about object oriented programming in Python. There are three widely used programming paradigms there. Procedural programming, functional programming and object-oriented programming. Python supports both procedural and object-oriented programming. Object-oriented programming (OOP) is a programming paradigm that uses objects and their interactions to design applications and computer programs. There are some basic programming concepts in OOP: AbstractionPolymorphismEncapsulationInheritance The abstraction is simplifying complex reality by modelling classes appropriate to the problem. Objects Everything in Python is an object. #! In this example we show, that all these entities are in fact objects. $ . The class keyword The previous objects were all built-in objects of the Python programming language. #! This is our first class. fr = First() Here we create a new instance of the First class. $ . Attributes #! = name $ .

The Hitchhikers Guide to Python! — pythonguide 0.0.1 documentation Greetings, Earthling! Welcome to The Hitchhiker’s Guide to Python. This is a living, breathing guide. This handcrafted guide exists to provide both novice and expert Python developers a best practice handbook to the installation, configuration, and usage of Python on a daily basis. This guide is opinionated in a way that is almost, but not quite, entirely unlike Python’s official documentation. Note The use of Python 3 is highly preferred over Python 2. Let’s get started! Getting Started with Python New to Python? Properly Install Python on your system: Using Virtualenvs with Pipenv: Python Development Environments This part of the guide focus on the Python development environment, and the best-practice tools that are available for writing Python code. Writing Great Python Code This part of the guide focuses on the best-practices for writing Python code. Scenario Guide for Python Applications This part of the guide focuses on tool and module advice based on different scenarios. Additional Notes

The Python I Would Like To See written on Saturday, August 16, 2014 It's no secret that I'm not a fan of Python 3 or where the language is currently going. This has led to a bunch of emails flying my way over the last few months about questions about what exactly I would prefer Python would do. Python is definitely a language that is not perfect. I want to take you on a journey that starts with a small oddity in the interpreter (slots) and ends up with the biggest mistake in the language design. In general though these posts will be an exploration about design decisions in the interpreter and what consequences they have on both the interpreter and the resulting language. Language vs Implementation I added this particular paragraph after I wrote the initial version of this article because I think it has been largely missed that Python as a language and CPython as the interpreter are not nearly as separate as developers might believe. Slots By far my biggest problem with the language is the stupid slot system. Yes. $ .