Why is Python 3 is considerably slower than Python 2? [duplicate]

The difference is in the implementation of the int type. Python 3.x uses the arbitrary-sized integer type (long in 2.x) exclusively, while in Python 2.x for values up to sys.maxint a simpler int type is used that uses a simple C long under the hood. Once you limit your loops to long integers, Python 3.x … Read more

Python string ‘in’ operator implementation algorithm and time complexity

It’s a combination of Boyer-Moore and Horspool. You can view the C code here: Fast search/count implementation, based on a mix between Boyer-Moore and Horspool, with a few more bells and whistles on the top. For some more background, see: https://web.archive.org/web/20201107074620/http://effbot.org/zone/stringlib.htm. From the link above: When designing the new algorithm, I used the following constraints: … Read more

How does Python’s Garbage Collector Detect Circular References?

How does Python detect & free circular memory references before making use of the gc module? It doesn’t. The gc exists only to detect and free circular references. Non-circular references are handled through refcounting. Now, to see how gc determines the set of objects referenced by any given object, take a look at the gc_get_references … Read more

Print to standard printer from Python?

This has only been tested on Windows: You can do the following: import os os.startfile(“C:/Users/TestFile.txt”, “print”) This will start the file, in its default opener, with the verb ‘print’, which will print to your default printer.Only requires the os module which comes with the standard library