diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index 9ac70ac..bdd230b 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -1194,7 +1194,7 @@
             if not self.context_use_ps1:
                 for context in self.num_context_lines:
                     startat = max(lno - context, 1)
-                    startatindex = `startat` + ".0"
+                    startatindex = repr(startat) + ".0"
                     rawtext = text.get(startatindex, "insert")
                     y.set_str(rawtext)
                     bod = y.find_good_parse_start(
diff --git a/Lib/idlelib/HyperParser.py b/Lib/idlelib/HyperParser.py
index 94f1496..38a19f2 100644
--- a/Lib/idlelib/HyperParser.py
+++ b/Lib/idlelib/HyperParser.py
@@ -31,7 +31,7 @@
         if not editwin.context_use_ps1:
             for context in editwin.num_context_lines:
                 startat = max(lno - context, 1)
-                startatindex = `startat` + ".0"
+                startatindex = repr(startat) + ".0"
                 stopatindex = "%d.end" % lno
                 # We add the newline because PyParse requires a newline at end.
                 # We add a space so that index won't be at end of line, so that
diff --git a/Lib/lib-tk/test/test_ttk/test_functions.py b/Lib/lib-tk/test/test_ttk/test_functions.py
index e516fa4..f8800ce 100644
--- a/Lib/lib-tk/test/test_ttk/test_functions.py
+++ b/Lib/lib-tk/test/test_ttk/test_functions.py
@@ -72,11 +72,11 @@
             {'-option': '{one two} three'})
 
         # ignore an option
-        amount_opts = len(ttk._format_optdict(opts, ignore=(u'á'))) / 2
+        amount_opts = len(ttk._format_optdict(opts, ignore=(u'á'))) // 2
         self.assertEqual(amount_opts, len(opts) - 1)
 
         # ignore non-existing options
-        amount_opts = len(ttk._format_optdict(opts, ignore=(u'á', 'b'))) / 2
+        amount_opts = len(ttk._format_optdict(opts, ignore=(u'á', 'b'))) // 2
         self.assertEqual(amount_opts, len(opts) - 1)
 
         # ignore every option
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index cbe47fd..0541535 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -301,11 +301,11 @@
             self.fail("__enter__ on a closed file didn't raise an exception")
         try:
             with BZ2File(self.filename, "wb") as f:
-                1/0
+                1 // 0
         except ZeroDivisionError:
             pass
         else:
-            self.fail("1/0 didn't raise an exception")
+            self.fail("1 // 0 didn't raise an exception")
 
     def testThreading(self):
         # Using a BZ2File from several threads doesn't deadlock (issue #7205).
