Header Banner
Null Byte Logo
Null Byte
wonderhowto.mark.png
Cyber Weapons Lab Forum Metasploit Basics Facebook Hacks Password Cracking Top Wi-Fi Adapters Wi-Fi Hacking Linux Basics Mr. Robot Hacks Hack Like a Pro Forensics Recon Social Engineering Networking Basics Antivirus Evasion Spy Tactics MitM Advice from a Hacker

An Introduction to IPython

Apr 1, 2015 04:09 PM
Sep 16, 2015 07:35 PM
IP[y]:

What Is IPython?

IPython is a richly featured replacement for the standard python interpreter. It offers a wider range of functionality, that the standard

interpreter, which generally ships with python, sorely lacks. It's a great tool for learning Python faster than you would without it, kind of like a handy cheat-sheet that's at your fingertips. It excels as a quick Python object reference(examples below), and for testing snippets of code on-the-fly. But these are just a few of the many features useful to the Python scripter. In this introduction, I will show off some it's most useful features. IPython is available for Linux, Mac and Windows.

Install IPython

I will assume here that you are using Kali linux/debian. If not, just replace the commands with the relevant ones for your distro. To install on kali, type:

apt-get install ipython

OR for the python 3.x version

apt-get install ipython3

If you're trying this on windows, already have Python installed(I will assume you do), and have some experience installing packages, you can get it with the command:

pip install ipythonreplace with ipython3 if you use python 3.x

Here are some links that can help with installation issues:

https://pypi.python.org/pypi/pip

and here:

http://ipython.org/install.html .

And here :):

https://null-byte.wonderhowto.com/how-to/get-started-with-kali-linux-2014-version-0151631/

Start IPython

To start IPython, open a command prompt, and type ipython

You should see this new prompt in the terminal:

Terminal window displaying the IPython interactive shell with commands and system messages.

In my examples below, I will be using Kali and the IPython for Python 2.x

Why Use IPython?

Exploring objects, a handy on-the-fly reference.

IPython makes exploring and learning more about python objects(modules, data-types, data-structures etc etc.) a breeze. See for yourself. Let's say you wanted to find out more about the itertools module(a very useful module). IPython makes this simple:

Python 2.7.3 interactive shell displaying a help command prompt.

The command takes the form object_name?

Now hit <return>, and Boom!

Screenshot of a terminal displaying Python code related to the 'itertools' module and iterator creation.

We get the modules docstring, and we find out that itertools contains "Functional tools for creating and using iterators"... Great!

Pressing <Enter> or the up/down directional keys will navigate through the rest of the docstring. We can escape back to IPython by pressing 'q.'

However, it's not just modules you can do this with, you can also do this for pythons types(str, list, tuple, dict ... etc), variables you have created and ... well pretty much any object in python... and that's pretty useful, because in python, everything is an object!

Python dictionary initialization in a terminal.
Code snippet demonstrating Python functions and data types in a terminal interface.
Python dictionary initialization in a terminal.
Code snippet demonstrating Python functions and data types in a terminal interface.

Tab Completion

Another great feature of IPython is it's Tab-completion. We can find out what methods itertools has by typing object_name.<TAB> (<TAB> = press the TAB key):

Python code snippet displaying functions from the itertools library in a terminal.

Now I want to know more about itertools.permutations, again I can use object_name?

Terminal display showing Python code for generating permutations using the itertools library.

This is also useful if you can't quite remember the name of the method you want, but you do remember for instance, the letter it started with. In this instance we could type, object_name.first_letter<TAB> which gives you all the methods starting with that letter

Terminal display showing string manipulation commands and results.

In short, typing object_name.<TAB> will work for almost any object, displaying it's attributes and methods, if it has any. This also works on file and directory names and any objects you may have created yourself!

Magic Functions

These are 'magic' predefined functions whose syntax is much like that of a command line call. There are two types, line magics and cell magics.

Line magics syntax takes the form

%func_name <args>

where <args> is the rest of the line, without quotes or parentheses.

Cell magics syntax is

%%func_name <args>

<args>

<args>

...

where <args> are both the rest of the line, and in a seperate argument, the lines that follow it. Note that we use '%' twice for cell magics, once for line magics.

A brief example:

Code snippet displaying benchmark results in a command line interface.

A full list of magic functions can be seen by typing %lsmagic

Finally, to exit IPython, simply type exit and hit <Enter>

In Conclusion

IPython is a very useful tool for scripting with python as a quick, easy, suitably in-depth reference, scratchpad(for testing snippets of code on the the fly) and last, but not least, for expanding your knowledge of python. I hope this will prove useful, it's my first post, and I appreciate any comments or constructive criticism. Thanks for reading!

Explore Object:

object_name?

TAB-completion:

object_name.<TAB>

Magic Functions:

%line_function <args>

%%cell_function <args>

<args>

...

You already know how to use your phone. With Gadget Hacks' newsletter, we'll show you how to master it. Each week, we explore features, hidden tools, and advanced settings that give you more control over iOS and Android than most users even know exists.

Sign up for Gadget Hacks Weekly and start unlocking your phone's full potential.

Related Articles

Comments

No Comments Exist

Be the first, drop a comment!