Introduction to Python and its Implementations

This  is in continuation of Programming in C-Python . It provides information about different Python implementations., built-in functions. Identifying Python version and how it finds modules

What are various Python Implementations ?

As we know there are various C implementations such as ANSI C,C95,C99 etc.

Similarly there are various Python implementations:

  • CPython : Written in C. This is the original Python.
  • Jython: Written in Java
  • PyPy Written completely in Python. Supports advance features such as stackless support, JIT(Just In Time) compiler
  • IronPython Written in Python for for  .NET applications

Which Python is installed in my setup ?

>>> import platform

>>> platform.python_implementation()‘CPython’

Where is Python installation folder ?

>>> import sys

>>> sys.executable‘C:\\Users\\shreyash\\AppData\\Local\\Programs\\Python\\Python36\\python.exe’

One can find this in Windows cmd line with echo %PATH%

Comments

In C, Line comment start with // while in Python it is with #

Each line in C requires a well defined statement followed by termination (;) .

Each line in Python can have any assignment,expression,function or method without any termination symbol . It can have simple calculator kind of expression e.g. 1+2

Multiple Lines

In C, we use \ to extend macro definition to multiple lines

#define TEST()\
line1\
line2

In Python, we can use \ to make a multiple physical lines(CR LF) statement to a single logical statement.

>>> if rollno > 1 and rollno <20 \
... and marks >50 :\
...        print(marks)

This is not required for statements written in parenthesis, square or curly brackets

Grouping of Statements

C & C++ uses braces { }  to define a block of code or grouping statements .

Python uses leading white spaces or tabs in logical line to start the indentation and end with an empty logical line.

>>> count=10
>>> if count>100:
...    print(count)
...
>>> print(count)
10
>>>

Interactive Python

You may try ipython  or simply use a text file e.g xyz.py

Interactive Python can be used for quick testing of some expression, but whatever command you enter will be lost after experiment. So you need to use a text editor such as notepad/vi to create .py file similar to .c

For ex: python test.py  #To execute test.py file

One can use -i option to analyze the data after test.py executed without terminating it. This is very useful for debugging purpose.

python -i test.py  #Good for debugging purpose

Module Integration

In C/C++ header file is used to access modules/functions in other source files/library. For ex : #include<stdio.h> in C for accessing printf()

In Python, import statement is used to access  modules if it is not part of builtin functions.  modules command in help> can provide list of available modules

What builtin functions are available ?

>>> import builtins
>>> dir(builtins)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr',
::::::::::::::::::::::::::::::::::::

Using factorial and sqrt functions from math module.

C:\Users\shreyash>python
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> math.factorial(4)
24
>>> math.sqrt(16)
4.0
>>>

Functions inside module can be found using dir

>>>dir(math)

How Python finds  modules ?

PYTHONPATH environment variable can also be used to define module search path. The path utilized to search modules can be found using

>>> import sys

>>> sys.path

References 

I have discussed this at  Programming C-Python video.

Thanks for reading till end. I am trying to improve usability of my  site. Did you find this discussion helpful ? If so,  Please subscribe to YouTube channel Embedkari as well for additional embedded related stuff.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top

Discover more from

Subscribe now to keep reading and get access to the full archive.

Continue reading