Issue #26778: Fixed "a/an/and" typos in code comment and documentation.
diff --git a/Lib/test/test_binop.py b/Lib/test/test_binop.py
index b1ef626..c7949fd 100644
--- a/Lib/test/test_binop.py
+++ b/Lib/test/test_binop.py
@@ -56,7 +56,7 @@
     den = property(_get_den, None)
 
     def __repr__(self):
-        """Convert a Rat to an string resembling a Rat constructor call."""
+        """Convert a Rat to a string resembling a Rat constructor call."""
         return "Rat(%d, %d)" % (self.__num, self.__den)
 
     def __str__(self):
@@ -78,7 +78,7 @@
         raise ValueError, "can't convert %s to int" % repr(self)
 
     def __long__(self):
-        """Convert a Rat to an long; self.den must be 1."""
+        """Convert a Rat to a long; self.den must be 1."""
         if self.__den == 1:
             return long(self.__num)
         raise ValueError, "can't convert %s to long" % repr(self)
diff --git a/Lib/test/test_cmd.py b/Lib/test/test_cmd.py
index 2cb2c88..5101484 100644
--- a/Lib/test/test_cmd.py
+++ b/Lib/test/test_cmd.py
@@ -110,7 +110,7 @@
     5  12  19
     6  13
 
-    This is a interactive test, put some commands in the cmdqueue attribute
+    This is an interactive test, put some commands in the cmdqueue attribute
     and let it execute
     This test includes the preloop(), postloop(), default(), emptyline(),
     parseline(), do_help() functions
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 57d5e06..efc40cf 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -47,7 +47,7 @@
         self.assertEqual(r.bytebuffer, "")
         self.assertEqual(r.charbuffer, u"")
 
-        # do the check again, this time using a incremental decoder
+        # do the check again, this time using an incremental decoder
         d = codecs.getincrementaldecoder(self.encoding)()
         result = u""
         for (c, partialresult) in zip(input.encode(self.encoding), partialresults):
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index 4a341ed..4b27424 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -951,7 +951,7 @@
         HTTPException: message
     TestResults(failed=1, attempted=2)
 
-But in Python 2 the module path is not included, an therefore a test must look
+But in Python 2 the module path is not included, and therefore a test must look
 like the following test to succeed in Python 2. But that test will fail under
 Python 3.
 
diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py
index babcce9..cb2c45e 100644
--- a/Lib/test/test_extcall.py
+++ b/Lib/test/test_extcall.py
@@ -282,7 +282,7 @@
     >>> f(**x)
     1 2
 
-A obscure message:
+An obscure message:
 
     >>> def f(a, b):
     ...    pass
diff --git a/Lib/test/test_mutants.py b/Lib/test/test_mutants.py
index 69c381e..c70106d 100644
--- a/Lib/test/test_mutants.py
+++ b/Lib/test/test_mutants.py
@@ -4,7 +4,7 @@
 
 # From SF bug #422121:  Insecurities in dict comparison.
 
-# Safety of code doing comparisons has been an historical Python weak spot.
+# Safety of code doing comparisons has been a historical Python weak spot.
 # The problem is that comparison of structures written in C *naturally*
 # wants to hold on to things like the size of the container, or "the
 # biggest" containee so far, across a traversal of the container; but
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index 6336a20..95bd26e 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -463,7 +463,7 @@
         self.assertEqual(os.path.abspath(sys.executable), sys.executable)
 
         # Issue #7774: Ensure that sys.executable is an empty string if argv[0]
-        # has been set to an non existent program name and Python is unable to
+        # has been set to a non existent program name and Python is unable to
         # retrieve the real program name
         import subprocess
         # For a normal installation, it should work without 'cwd'
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index 212bd1a..ac14e66 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -876,7 +876,7 @@
     eventtype = staticmethod(threading.Event)
 
 class ConditionAsRLockTests(lock_tests.RLockTests):
-    # An Condition uses an RLock by default and exports its API.
+    # Condition uses an RLock by default and exports its API.
     locktype = staticmethod(threading.Condition)
 
 class ConditionTests(lock_tests.ConditionTests):