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 🐍]

[see Unicode Basics: Character Set, Encoding, UTF-8, Codepoint]

Strings

Use single quote or double quote to quote string.

# python 3

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

print(a, b)   # tiger ♥ rabbit ♥

You can use \n for linebreak, and \t for tab, etc.

Quoting Raw String 「r"…"」

You can add r in front of the quote symbol. This way, backslash characters will NOT be interpreted as escapes.

# python 3

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.

# python 3

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.

# python 3

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

# python 3

print(3 + 4) # 7
print(3 - 4) # -1
print(3 + - 4)   # -1
print(3 * 4) # 12

print(2 ** 3) # 8 power

print(11 / 5) # 2.2  (in python 2, this would be 2)
print(11 // 5)    # 2 (quotient)
print(11 % 5) # 1 remainder (modulo)

print(divmod(11, 5))  # (2, 1) quotient and remainder

Convert to {int, float, string}

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

Assignment Operators

# Python 3

# add and assign
c = 0
c += 1
print(c)    # 1

# substract and assign
c = 0
c -= 2
print(c)    # -2

# multiply and assign
c = 2
c *= 3
print(c)    # 6

# exponent and assign
c = 3
c **= 2
print(c)    # 9

# divide and assign
c = 7
c /= 2
print(c)    # 3.5

# modulus (remainder) and assign
c = 13
c %= 5
print(c)    # 3

# quotient and assign
c = 13
c //= 5
print(c)    # 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

False like things, such as False, 0, empty string, empty array, …, all evaluate to False.

The following evaluate to False:

# python 3

my_thing = []

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

Conditional: if then else

# python 3

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.

# python 3

a = list(range(1,5)) # creates a list from 1 to 4. (does NOT include the end)

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.
# python 3

for x in range(1,9):
    print(x)
    if x == 4:
        break

# 1
# 2
# 3
# 4

Example of a “while” loop.

# python 3

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.

# python 3

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 has a “tuple” type. It's like list, except it's immutable (that is, 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.

# python 3

# tuple
t1 = (3, 4 , 5) # a tuple of 3 elements. paren optional when not ambiguous
print(t1) # (3, 4 , 5)
print(t1[0])    # 3
# python 3

# nested tuple
t2 = ((3,8), (4,9), ("a", 5, 5))
print(t2[0])   # (3,8)
print(t2[0][0])    # 3
# python 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.

# python 3

# 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.

# python 3

# 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

Loop Thru List/Dictionary

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

# python 3

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

for x in myList:
     print(x)

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

# python 3

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

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

Loop thru Dictionary

# python 3

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.

# python 3

# 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.

# python 3

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.

# python 3

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.

# python 3

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