diff --git a/Doc/lib/sqlite3/adapter_datetime.py b/Doc/lib/sqlite3/adapter_datetime.py
index 3460498..5869e22 100644
--- a/Doc/lib/sqlite3/adapter_datetime.py
+++ b/Doc/lib/sqlite3/adapter_datetime.py
@@ -11,4 +11,4 @@
 
 now = datetime.datetime.now()
 cur.execute("select ?", (now,))
-print cur.fetchone()[0]
+print(cur.fetchone()[0])
diff --git a/Doc/lib/sqlite3/adapter_point_1.py b/Doc/lib/sqlite3/adapter_point_1.py
index a741f6c..1343acd 100644
--- a/Doc/lib/sqlite3/adapter_point_1.py
+++ b/Doc/lib/sqlite3/adapter_point_1.py
@@ -13,4 +13,4 @@
 
 p = Point(4.0, -3.2)
 cur.execute("select ?", (p,))
-print cur.fetchone()[0]
+print(cur.fetchone()[0])
diff --git a/Doc/lib/sqlite3/adapter_point_2.py b/Doc/lib/sqlite3/adapter_point_2.py
index 200a064..1e1719a 100644
--- a/Doc/lib/sqlite3/adapter_point_2.py
+++ b/Doc/lib/sqlite3/adapter_point_2.py
@@ -14,4 +14,4 @@
 
 p = Point(4.0, -3.2)
 cur.execute("select ?", (p,))
-print cur.fetchone()[0]
+print(cur.fetchone()[0])
diff --git a/Doc/lib/sqlite3/collation_reverse.py b/Doc/lib/sqlite3/collation_reverse.py
index e956402..bfd7f5b 100644
--- a/Doc/lib/sqlite3/collation_reverse.py
+++ b/Doc/lib/sqlite3/collation_reverse.py
@@ -11,5 +11,5 @@
 cur.executemany("insert into test(x) values (?)", [("a",), ("b",)])
 cur.execute("select x from test order by x collate reverse")
 for row in cur:
-    print row
+    print(row)
 con.close()
diff --git a/Doc/lib/sqlite3/complete_statement.py b/Doc/lib/sqlite3/complete_statement.py
index 76ea7f6..cd38d73 100644
--- a/Doc/lib/sqlite3/complete_statement.py
+++ b/Doc/lib/sqlite3/complete_statement.py
@@ -8,11 +8,11 @@
 
 buffer = ""
 
-print "Enter your SQL commands to execute in sqlite3."
-print "Enter a blank line to exit."
+print("Enter your SQL commands to execute in sqlite3.")
+print("Enter a blank line to exit.")
 
 while True:
-    line = raw_input()
+    line = input()
     if line == "":
         break
     buffer += line
@@ -22,9 +22,9 @@
             cur.execute(buffer)
 
             if buffer.lstrip().upper().startswith("SELECT"):
-                print cur.fetchall()
+                print(cur.fetchall())
         except sqlite3.Error as e:
-            print "An error occurred:", e.args[0]
+            print("An error occurred:", e.args[0])
         buffer = ""
 
 con.close()
diff --git a/Doc/lib/sqlite3/converter_point.py b/Doc/lib/sqlite3/converter_point.py
index e220e9b..d0707ab 100644
--- a/Doc/lib/sqlite3/converter_point.py
+++ b/Doc/lib/sqlite3/converter_point.py
@@ -11,7 +11,7 @@
     return "%f;%f" % (point.x, point.y)
 
 def convert_point(s):
-    x, y = map(float, s.split(";"))
+    x, y = list(map(float, s.split(";")))
     return Point(x, y)
 
 # Register the adapter
@@ -30,7 +30,7 @@
 
 cur.execute("insert into test(p) values (?)", (p,))
 cur.execute("select p from test")
-print "with declared types:", cur.fetchone()[0]
+print("with declared types:", cur.fetchone()[0])
 cur.close()
 con.close()
 
@@ -42,6 +42,6 @@
 
 cur.execute("insert into test(p) values (?)", (p,))
 cur.execute('select p as "p [point]" from test')
-print "with column names:", cur.fetchone()[0]
+print("with column names:", cur.fetchone()[0])
 cur.close()
 con.close()
diff --git a/Doc/lib/sqlite3/countcursors.py b/Doc/lib/sqlite3/countcursors.py
index df04cad..ef3e70a 100644
--- a/Doc/lib/sqlite3/countcursors.py
+++ b/Doc/lib/sqlite3/countcursors.py
@@ -12,4 +12,4 @@
 con = sqlite3.connect(":memory:", factory=CountCursorsConnection)
 cur1 = con.cursor()
 cur2 = con.cursor()
-print con.numcursors
+print(con.numcursors)
diff --git a/Doc/lib/sqlite3/execsql_fetchonerow.py b/Doc/lib/sqlite3/execsql_fetchonerow.py
index 8044ecf..078873b 100644
--- a/Doc/lib/sqlite3/execsql_fetchonerow.py
+++ b/Doc/lib/sqlite3/execsql_fetchonerow.py
@@ -9,9 +9,9 @@
 # resulting sequences to yield their elements (name_last, age):
 cur.execute(SELECT)
 for (name_last, age) in cur:
-    print '%s is %d years old.' % (name_last, age)
+    print('%s is %d years old.' % (name_last, age))
 
 # 2. Equivalently:
 cur.execute(SELECT)
 for row in cur:
-    print '%s is %d years old.' % (row[0], row[1])
+    print('%s is %d years old.' % (row[0], row[1]))
diff --git a/Doc/lib/sqlite3/execsql_printall_1.py b/Doc/lib/sqlite3/execsql_printall_1.py
index d27d735..a4ce5c5 100644
--- a/Doc/lib/sqlite3/execsql_printall_1.py
+++ b/Doc/lib/sqlite3/execsql_printall_1.py
@@ -10,4 +10,4 @@
 cur.execute("select * from people order by age")
 
 # Retrieve all rows as a sequence and print that sequence:
-print cur.fetchall()
+print(cur.fetchall())
diff --git a/Doc/lib/sqlite3/execute_1.py b/Doc/lib/sqlite3/execute_1.py
index fb3784f..3d08840 100644
--- a/Doc/lib/sqlite3/execute_1.py
+++ b/Doc/lib/sqlite3/execute_1.py
@@ -8,4 +8,4 @@
 age = 72
 
 cur.execute("select name_last, age from people where name_last=? and age=?", (who, age))
-print cur.fetchone()
+print(cur.fetchone())
diff --git a/Doc/lib/sqlite3/execute_2.py b/Doc/lib/sqlite3/execute_2.py
index df6c894..84734f9 100644
--- a/Doc/lib/sqlite3/execute_2.py
+++ b/Doc/lib/sqlite3/execute_2.py
@@ -9,4 +9,4 @@
 
 cur.execute("select name_last, age from people where name_last=:who and age=:age",
     {"who": who, "age": age})
-print cur.fetchone()
+print(cur.fetchone())
diff --git a/Doc/lib/sqlite3/execute_3.py b/Doc/lib/sqlite3/execute_3.py
index b64621f..0353683 100644
--- a/Doc/lib/sqlite3/execute_3.py
+++ b/Doc/lib/sqlite3/execute_3.py
@@ -9,4 +9,4 @@
 
 cur.execute("select name_last, age from people where name_last=:who and age=:age",
     locals())
-print cur.fetchone()
+print(cur.fetchone())
diff --git a/Doc/lib/sqlite3/executemany_1.py b/Doc/lib/sqlite3/executemany_1.py
index 2dc72cd..efae106 100644
--- a/Doc/lib/sqlite3/executemany_1.py
+++ b/Doc/lib/sqlite3/executemany_1.py
@@ -21,4 +21,4 @@
 cur.executemany("insert into characters(c) values (?)", theIter)
 
 cur.execute("select c from characters")
-print cur.fetchall()
+print(cur.fetchall())
diff --git a/Doc/lib/sqlite3/executemany_2.py b/Doc/lib/sqlite3/executemany_2.py
index 05857c0..518cd94 100644
--- a/Doc/lib/sqlite3/executemany_2.py
+++ b/Doc/lib/sqlite3/executemany_2.py
@@ -12,4 +12,4 @@
 cur.executemany("insert into characters(c) values (?)", char_generator())
 
 cur.execute("select c from characters")
-print cur.fetchall()
+print(cur.fetchall())
diff --git a/Doc/lib/sqlite3/md5func.py b/Doc/lib/sqlite3/md5func.py
index 5769687..b7bc05b 100644
--- a/Doc/lib/sqlite3/md5func.py
+++ b/Doc/lib/sqlite3/md5func.py
@@ -1,11 +1,11 @@
 import sqlite3
-import md5
+import hashlib
 
 def md5sum(t):
-    return md5.md5(t).hexdigest()
+    return hashlib.md5(t).hexdigest()
 
 con = sqlite3.connect(":memory:")
 con.create_function("md5", 1, md5sum)
 cur = con.cursor()
 cur.execute("select md5(?)", ("foo",))
-print cur.fetchone()[0]
+print(cur.fetchone()[0])
diff --git a/Doc/lib/sqlite3/mysumaggr.py b/Doc/lib/sqlite3/mysumaggr.py
index 6d0cd55..d2dfd2c 100644
--- a/Doc/lib/sqlite3/mysumaggr.py
+++ b/Doc/lib/sqlite3/mysumaggr.py
@@ -17,4 +17,4 @@
 cur.execute("insert into test(i) values (1)")
 cur.execute("insert into test(i) values (2)")
 cur.execute("select mysum(i) from test")
-print cur.fetchone()[0]
+print(cur.fetchone()[0])
diff --git a/Doc/lib/sqlite3/parse_colnames.py b/Doc/lib/sqlite3/parse_colnames.py
index fcded00..cc68c76 100644
--- a/Doc/lib/sqlite3/parse_colnames.py
+++ b/Doc/lib/sqlite3/parse_colnames.py
@@ -5,4 +5,4 @@
 cur = con.cursor()
 cur.execute('select ? as "x [timestamp]"', (datetime.datetime.now(),))
 dt = cur.fetchone()[0]
-print dt, type(dt)
+print(dt, type(dt))
diff --git a/Doc/lib/sqlite3/pysqlite_datetime.py b/Doc/lib/sqlite3/pysqlite_datetime.py
index efa4b06..68d4935 100644
--- a/Doc/lib/sqlite3/pysqlite_datetime.py
+++ b/Doc/lib/sqlite3/pysqlite_datetime.py
@@ -11,10 +11,10 @@
 cur.execute("insert into test(d, ts) values (?, ?)", (today, now))
 cur.execute("select d, ts from test")
 row = cur.fetchone()
-print today, "=>", row[0], type(row[0])
-print now, "=>", row[1], type(row[1])
+print(today, "=>", row[0], type(row[0]))
+print(now, "=>", row[1], type(row[1]))
 
 cur.execute('select current_date as "d [date]", current_timestamp as "ts [timestamp]"')
 row = cur.fetchone()
-print "current_date", row[0], type(row[0])
-print "current_timestamp", row[1], type(row[1])
+print("current_date", row[0], type(row[0]))
+print("current_timestamp", row[1], type(row[1]))
diff --git a/Doc/lib/sqlite3/row_factory.py b/Doc/lib/sqlite3/row_factory.py
index 64676c8..e436ffc 100644
--- a/Doc/lib/sqlite3/row_factory.py
+++ b/Doc/lib/sqlite3/row_factory.py
@@ -10,4 +10,4 @@
 con.row_factory = dict_factory
 cur = con.cursor()
 cur.execute("select 1 as a")
-print cur.fetchone()["a"]
+print(cur.fetchone()["a"])
diff --git a/Doc/lib/sqlite3/shortcut_methods.py b/Doc/lib/sqlite3/shortcut_methods.py
index 72ed4b3..596d87c 100644
--- a/Doc/lib/sqlite3/shortcut_methods.py
+++ b/Doc/lib/sqlite3/shortcut_methods.py
@@ -15,7 +15,7 @@
 
 # Print the table contents
 for row in con.execute("select firstname, lastname from person"):
-    print row
+    print(row)
 
 # Using a dummy WHERE clause to not let SQLite take the shortcut table deletes.
-print "I just deleted", con.execute("delete from person where 1=1").rowcount, "rows"
+print("I just deleted", con.execute("delete from person where 1=1").rowcount, "rows")
diff --git a/Doc/lib/sqlite3/simple_tableprinter.py b/Doc/lib/sqlite3/simple_tableprinter.py
index 67ea6a2..231d872 100644
--- a/Doc/lib/sqlite3/simple_tableprinter.py
+++ b/Doc/lib/sqlite3/simple_tableprinter.py
@@ -11,9 +11,9 @@
 
 # Print a header.
 for fieldDesc in cur.description:
-    print fieldDesc[0].ljust(FIELD_MAX_WIDTH) ,
-print # Finish the header with a newline.
-print '-' * 78
+    print(fieldDesc[0].ljust(FIELD_MAX_WIDTH), end=' ')
+print() # Finish the header with a newline.
+print('-' * 78)
 
 # For each row, print the value of each field left-justified within
 # the maximum possible width of that field.
@@ -21,6 +21,6 @@
 for row in cur:
     for fieldIndex in fieldIndices:
         fieldValue = str(row[fieldIndex])
-        print fieldValue.ljust(FIELD_MAX_WIDTH) ,
+        print(fieldValue.ljust(FIELD_MAX_WIDTH), end=' ')
 
-    print # Finish the row with a newline.
+    print() # Finish the row with a newline.
diff --git a/Doc/lib/sqlite3/text_factory.py b/Doc/lib/sqlite3/text_factory.py
index 3e157a8..2dab8e4 100644
--- a/Doc/lib/sqlite3/text_factory.py
+++ b/Doc/lib/sqlite3/text_factory.py
@@ -6,7 +6,7 @@
 # Create the table
 con.execute("create table person(lastname, firstname)")
 
-AUSTRIA = u"\xd6sterreich"
+AUSTRIA = "\xd6sterreich"
 
 # by default, rows are returned as Unicode
 cur.execute("select ?", (AUSTRIA,))
@@ -25,17 +25,17 @@
 # we can also implement a custom text_factory ...
 # here we implement one that will ignore Unicode characters that cannot be
 # decoded from UTF-8
-con.text_factory = lambda x: unicode(x, "utf-8", "ignore")
-cur.execute("select ?", ("this is latin1 and would normally create errors" + u"\xe4\xf6\xfc".encode("latin1"),))
+con.text_factory = lambda x: str(x, "utf-8", "ignore")
+cur.execute("select ?", ("this is latin1 and would normally create errors" + "\xe4\xf6\xfc".encode("latin1"),))
 row = cur.fetchone()
-assert type(row[0]) == unicode
+assert type(row[0]) == str
 
 # pysqlite offers a builtin optimized text_factory that will return bytestring
 # objects, if the data is in ASCII only, and otherwise return unicode objects
 con.text_factory = sqlite3.OptimizedUnicode
 cur.execute("select ?", (AUSTRIA,))
 row = cur.fetchone()
-assert type(row[0]) == unicode
+assert type(row[0]) == str
 
 cur.execute("select ?", ("Germany",))
 row = cur.fetchone()
