Oh frabjous day!

Made with Octopress!

Quick Python Tutorial for C People

| Comments

Python for users of C-like languages:

I’m going to assume you are familiar with at least one C-like language, and describe the differences and similarities between Python and C-like languages. Note that when I say ‘C’ in the examples below, I probably mean C++, or C-like. I know that C doesn’t contain bool or cout. =P

  • Python is dynamically typed. Instead of specifying the type of a variable in the code, it is determined dynamically by the Python interpreter when the script is run. The following example shows how a variable would be created to store the integer ‘7’ in C and Python respectively:
1
2
// C
int my_cool_variable = 7;
1
2
# Python
my_cool_variable = 7
  • Python uses line breaks to specify the end of a line. The following examples show how multiple lines of code would be written in C and Python respectively:
1
2
3
// C
int first = 1;
int second = 2;
1
2
3
# Python
first = 1
second = 2
  • Python functions are a little different. They do not specify type, because Python is dynamically typed. Also, a Python function has a colon (:) after the parentheses, and the rest of the function is indented. The following examples show how functions are defined in C and Python respectively:
1
2
3
4
5
6
7
8
9
10
11
12
13
// C
int function1()
{
    int a = 1 + 2;
    return a - 1;
}

bool function2()
{
    int a = 3;
    int b = 2;
    return a == b;
}
1
2
3
4
5
6
7
8
9
# Python
def function1():
    a = 1 + 2
    return a - 1

def function2():
    a = 3
    b = 2
    return a == b
  • Python uses indentation to specify loop boundaries and nesting. Rather than specifying the start and end of a loop or function with curly braces, Python uses a colon, followed by indentation.
1
2
3
4
5
6
7
8
9
10
11
// C-like
int a = 0;
while (a < 7)
{
    cout << a;
    if (a == 3)
    {
        cout << "That's my favourite number.";
    }
    a++
}
1
2
3
4
5
6
7
# Python
a = 0
while a < 7:
    print(a)
    if a == 3:
        print("That's my favourite number.")
    a += 1
  • Python uses ‘#’ for one line comments, and lots of #’s for multi-line comments. (Some people will try to tell you that Python uses “””triple-quoted strings””” as multi-line comments. You can do this if you like, but it is not technically correct. “””Triple-quoted strings””” will be instantly garbage collected on run, whereas #comments will be completely ignored, so #comments are generally better. One legitimate use for “””triple-quoted strings””” is docstrings. Docstrings are strings directly after the start of a module, or a function or a class, and are used for interactively accessible documentation among other things.
1
2
3
4
5
6
7
// One line C comment.
/*
  Multi-
  line
  C 
  comment.
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# One line Python comment

#  Multi-
#  line
#  Python
#  comment.

"""
Something that acts like a multi-line
comment, but is usually frowned upon.
"""

def new_function():
    """Docstring that says what this
    function does"""

# Accessing a docstring from within a program
docstring = new_function.__doc__
  • Google is your friend. Have fun.

Comments

comments powered by Disqus