Python 3 in 1 Hour

By Xah Lee. Date: . Last updated: .

This is a Python 3 tutorial. This page is a summary of the basics for beginners. Examples on this page are based on Python 3.7.

For python 2, see: Python 2 Basics .

Python 3 source file must be saved in UTF 8 encoding. Make sure your editor saves it in UTF 8. (usually there's a preference setting.) [see Python: Unicode Tutorial 🐍]

Strings

Use single quote or double quote to quote string.

# single and double quotes are same in Python
a = "tiger"
b = 'rabbit'

print(a, b)
# tiger rabbit

Use \n for linebreak, and \t for tab, etc.

print("some\nthing")

# prints
# some
# thing

Quoting Raw String r"…"

Add r in front of the quote symbol so that backslash characters will NOT be interpreted as escapes.

c = r"this\n and that"

print(c) # prints a single line

[see Python: Quote String]

Triple Quotes for Multi-Line String

To quote a string of multiple lines, use triple quotes.

d = """this
will be printed
in 3 lines"""

print(d)

substring, length

Substring extraction is done by appending a bracket str[begin_index:end_index]. Index can be negative, which counts from the end.

b="01234567"
print(b[1:4]) # prints “123”

Length of the string is len().

a="this"
print(len(a)) # 4

Strings can be joined by a plus sign +.

print("this" + " that")

String can be repeated using *.

print("this" * 2)

String Methods

Python: String Methods

Arithmetic

# add
print(3 + 4) # 7
# substract
print(3 - 4) # -1
print(3 + - 4)   # -1
# times
print(3 * 4) # 12
# power
print(2 ** 3) # 8
# divide
print(11 / 5) # 2.2
# quotient
print(11 // 5)    # 2
# remainder (modulo)
print(11 % 5) # 1
# quotient and remainder
print(divmod(11, 5))  # (2, 1)

Convert to Int/Float/String

Python doesn't automatically convert between {int, float, string}.

Assignment Operators

# add and assign
x = 0
x += 1
print(x)    # 1
# substract and assign
x = 0
x -= 2
print(x)    # -2
# multiply and assign
x = 2
x *= 3
print(x)    # 6
# exponent and assign
x = 3
x **= 2
print(x)    # 9
# divide and assign
x = 7
x /= 2
print(x)    # 3.5
# modulus (remainder) and assign
x = 13
x %= 5
print(x)    # 3
# quotient and assign
x = 13
x //= 5
print(x)    # 2

Note: Python doesn't support ++ or --.

Warning: ++i may not generate any error, but it doesn't do anything.

For bitwise and other operators, see: Python 3: Operators .

True and False

The following evaluate to False:

my_thing = []

if my_thing:
    print("yes")
else:
    print("no")

Conditional: if then else

x = -1
if x<0:
    print('neg')
elif x==0:
    print('zero')
elif x==1:
    print('one')
else:
    print('other')

# the elif can be omitted.

Loop, Iteration

Example of a “for” loop.

# creates a list from 1 to 4
a = list(range(1,5))

for x in a:
    if x == 3:
        print(x)

# prints 3

The range(m, n) function gives a list from m to n-1.

Python also supports break and continue to exit loop.

break
Exit loop.
continue
Skip code and start the next iteration.
for x in range(1,9):
    print(x)
    if x == 4:
        break

# 1
# 2
# 3
# 4

Example of a “while” loop.

x = 1
while x <= 5:
    print(x)
    x += 1

List

Creating a list.

a = [0, 1, 2, "more", 4, 5, 6]
print(a)

Counting elements:

a = ["more", 4, 6]
print(len(a)) # prints 3

Getting a element. Use the syntax list[index]. Index start at 0. Negative index counts from right. Last element has index -1.

a = ["more", 4, 6]
print(a[1]) # prints 4

Extracting a sequence of elements (aka sublist, slice): list[start_index:end_index].

a = ["zero", "one", "two", "three", "four", "five", "six"]
print(a[2:4])   # prints ["two", "three"]

WARNING: The extraction is not inclusive. For example, mylist[2:4] returns only 2 elements, not 3.

Modify element: list[index] = new_value

xx = ["a", "b", "c"]
xx[2] = "two"
print(xx) # → ['a', 'b', 'two']

A slice (continuous sequence) of elements can be changed by assigning to a list directly. The length of the slice need not match the length of new list.

xx = [ "b0", "b1", "b2", "b3", "b4", "b5", "b6"]

xx[0:6] = ["two", "three"]

print(xx)   # ['two', 'three', 'b6']

Nested Lists. Lists can be nested arbitrarily. Append extra bracket to get element of nested list.

a = [3, 4, [7, 8]]

print(a[2][1])    # returns 8

List Join. Lists can be joined with plus sign.

b = ["a", "b"] + [7, 6]
print(b)    # prints ['a', 'b', 7, 6]

Python: List Basics

Tuple

Python tuple type is like list, except, the elements cannot be changed, nor added/deleted.

Syntax for tuble is using round brackets () instead of square brackets. The brackets are optional when not ambiguous, but best to always use them.

# tuple
t1 = (3, 4 , 5) # a tuple of 3 elements. paren optional when not ambiguous
print(t1) # (3, 4 , 5)
print(t1[0])    # 3
# nested tuple
t2 = ((3,8), (4,9), ("a", 5, 5))
print(t2[0])   # (3,8)
print(t2[0][0])    # 3
# a list of tuples
t3 = [(3,8), (4,9), (2,1)]
print(t3[0])   # (3,8)
print(t3[0][0])    # 3

[see Python: Tuple]

Python Sequence Types

In Python, {string, list, tuple} are called “sequence types”. They all have the same methods. Here's example of operations that can be used on sequence type.

# operations on sequence types

# a list
ss = [0, 1, 2, 3]

# length
print(len(ss)) # 4

# ith item
print(ss[0]) # 0

# slice of items
print(ss[0:3])    # [0, 1, 2]

# slice of items with jump step
print(ss[0:10:2]) # [0, 2]

# check if a element exist
print(3 in ss)    # True. (or False)

# check if a element does NOT exist
print(3 not in ss) # False

# concatenation
print(ss + ss)   # [0, 1, 2, 3, 0, 1, 2, 3]

# repeat
print(ss * 2)    # [0, 1, 2, 3, 0, 1, 2, 3]

# smallest item
print(min(ss))    # 0

# largest item
print(max(ss))    # 3

# index of the first occurrence
print(ss.index(3))   # 3

# total number of occurrences
print(ss.count(3))   # 1

Dictionary: Key/Value Pairs

A keyed list in Python is called “dictionary” (known as Hash Table or Associative List in other languages). It is a unordered list of pairs, each pair is a key and a value.

# define a keyed list
aa = {"john":3, "mary":4, "joe":5, "vicky":7}

# getting value from a key
print(aa["mary"])
# 4

# add a entry
aa["pretty"] = 99

# delete a entry
del aa["vicky"]

print(aa)
# {'john': 3, 'mary': 4, 'joe': 5, 'pretty': 99}

# get keys
print(list(aa.keys()))
# ['john', 'mary', 'joe', 'pretty']

# get values
print(list(aa.values()))
# [3, 4, 5, 99]

# check if a key exists
print("is mary there:", "mary" in aa)
# is mary there: True

Enumerate List/Dictionary

Here is a example of going thru a list by element.

myList = ['one', 'two', 'three', '∞']

for x in myList:
     print(x)

You can loop thru a list and get both {index, value} of a element.

myList = ['one', 'two', 'three', '∞']
for i, v in enumerate(myList):
     print(i, v)

# 0 one
# 1 two
# 2 three
# 3 ∞

enumerate Dictionary

myDict = {"john":3, 'mary':4, 'joe':5, 'vicky':7}

for k, v in list(myDict.items()):
     print(k, v)

# output

# joe 5
# john 3
# mary 4
# vicky 7

[see Python: Map Function to List]

Use Module

A library in Python is called a module.

# import the standard module named os
import os

# example of using a function
print('current dir is:', os.getcwd())

Python: List Modules, Search Path, Loaded Modules

Function

The following is a example of defining a function.

def myFun(x,y):
     """myFun returns x+y."""
     result = x+y
     return result

print(myFun(3,4)) # prints 7

Python: Function

Class and Object

Python: Class and Object

Writing a Module

Here's a basic example. Save the following line in a file and name it mymodule.py.

def f1(n):
    return n+1

To load the file, use import import module_name, then to call the function, use module_name.function_name.

import mymodule # import the module

print(mymodule.f1(5)) # calling its function. prints 6
print(mymodule.__name__)   # list its functions and variables

Python

Regex

Text Processing

Web

Misc