ITS-P logo
Focused certification exam prep
Start practice

ITS-P Cheat Sheet 2026: One-Page Review of Must-Know Facts

TL;DR
  • The Information Technology Specialist - Python exam is delivered through Pearson and organized into six unweighted objective domains.
  • The Python Exam Update adds hands-on VS Code tasks between selected-response sections without changing the objective domains.
  • Domain 1 covers type inference, slicing, operator precedence, and choosing identity versus containment operators correctly.
  • Domain 5 combines error diagnosis, exception handling, and unittest assertions, so read tracebacks and write small tests.

What This Cheat Sheet Covers (and What It Doesn't)

This page is a one-page-style review of the Information Technology Specialist - Python certification (ITS-P), a Pearson-delivered exam that tests foundational Python programming skills. It is built directly from the official Python objective domains, so each section below maps to a published domain and its sub-objectives. If you want the long-form version of any area, the ITS-P exam domains guide goes deeper, and the ITS-P study guide lays out a full preparation path.

One note on scope: the official objectives are unweighted. That means no published percentage tells you how many questions come from each domain, so treat all six as fair game and avoid skipping an area because it looks small. The 2025 copyright on the objective document is not an exam-version label, and it does not signal a new subject scope.

How to use this sheet: Read each domain block, then close the page and try to write the key snippets from memory in an editor. Python is a performance skill. Recognizing a correct answer on a page is not the same as typing working code under time pressure.

Exam Facts You Can Safely Memorize

Before the Python content, here is what is and is not established about the exam itself. The reviewed official sources confirm the following, and anything beyond this table should be checked directly with Pearson before you rely on it.

ItemWhat is confirmed
Governing bodyPearson (the objectives document is hosted on Pearson VUE)
SubjectPython programming fundamentals
DomainsSix, with unweighted objectives
Format updateEnglish Next Generation includes hands-on Python tasks in VS Code between selected-response sections
Effect of the updateNo change to objective domains or the resulting certificate
Fee, item count, duration, passing threshold, pass rate, renewal termsNot established by the reviewed sources; confirm with Pearson

Because the specifics of cost and scoring are not pinned down here, use the dedicated pages as starting points and then verify against Pearson: ITS-P certification cost, ITS-P passing score, ITS-P pass rate, and ITS-P exam dates. Do not budget your attempt around a number you found in a forum post.

Domain 1: Operations using Data Types and Operators

This is the densest domain for rote facts, and it rewards candidates who can predict output without running code.

1.1 Infer assigned types

Given an assignment, you should name the resulting type immediately.

  • 3 is int, 3.0 is float, "3" is str, True is bool.
  • [1, 2] is a list, (1, 2) is a tuple, {1, 2} is a set, {"a": 1} is a dict.
  • (1) is just an int; a one-element tuple needs a trailing comma: (1,).
  • / always returns a float; // floors and keeps int when both operands are ints.

1.2 Conversions, indexing, slicing, list manipulation

Expect questions that chain a conversion with a slice or a list method.

  • Indexing starts at 0; negative indexes count from the end (s[-1] is the last item).
  • Slices are [start:stop:step] with stop exclusive; s[::-1] reverses.
  • int("12") works, int("12.5") raises ValueError, while int(12.9) truncates to 12.
  • Know the list methods that mutate in place and return None: append, extend, insert, remove, sort, reverse. Assigning the result of sort() to a variable gives you None.
  • pop() removes and returns an item; del lst[i] removes without returning.
  • Strings are immutable; lists are mutable. Assigning one list to another name copies the reference, not the contents.

1.3 Operator precedence

Memorize the rough order from tightest to loosest binding.

  • Parentheses, then exponent ** (right-associative), then unary minus, then * / // %, then + -.
  • Comparisons come next, then not, then and, then or.
  • -2 ** 2 evaluates to -4 because exponent binds tighter than unary minus.

1.4 Selecting the right operator

This sub-objective names five operator families, and questions often hinge on telling two of them apart.

  • Assignment: =, +=, -=, and friends.
  • Comparison: ==, !=, <, >, <=, >=.
  • Logical: and, or, not, with short-circuit evaluation.
  • Identity: is, is not compare object identity, not value equality. Use is None, not == None.
  • Containment: in, not in test membership in strings, lists, tuples, sets, and dict keys.

Domain 2: Flow Control with Decisions and Loops

2.1 Branching and compound conditions

  • Structure is if / elif / else; only the first true branch runs.
  • Nested conditions are decided by indentation, so a misplaced else changes meaning, not just style.
  • Compound conditions combine comparisons with and/or; remember and binds tighter than or, so add parentheses when you need the other grouping.
  • Chained comparisons such as 1 < x < 10 are valid Python.
  • Falsy values include 0, 0.0, "", [], (), {}, set(), and None.

2.2 Iteration, loop controls, nested loops

  • for iterates over any iterable; range(stop), range(start, stop), and range(start, stop, step) never include the stop value.
  • while repeats while its condition is true; a condition that never changes produces an infinite loop.
  • break exits the nearest enclosing loop; continue skips to the next iteration.
  • The loop else clause runs only when the loop finishes without hitting break.
  • In nested loops, the inner loop completes fully for each pass of the outer loop. Trace a small example by hand: a 3-by-4 nested loop executes the inner body twelve times.
Trace, don't guess: Loop questions are usually answered by writing a short table of variable values per iteration. Off-by-one mistakes with range and slicing account for a large share of wrong answers because candidates forget that stop is exclusive.

Domain 3: Input and Output Operations

3.1 File input/output and existence/deletion

  • Open files with open(path, mode); modes include "r" (read), "w" (write, truncates), "a" (append), and a "b" suffix for binary.
  • Prefer the with statement so the file closes automatically even if an error occurs.
  • Reading options: read() (whole file), readline() (one line), readlines() (list of lines), or iterating the file object directly.
  • Writing uses write() for strings and writelines() for an iterable of strings; neither adds newlines for you.
  • Checking existence and deleting are covered here too; the supporting tools live in os and os.path (see Domain 6).

3.2 Console input, formatted output, command-line arguments

  • input() always returns a string, so convert with int() or float() before arithmetic.
  • print() accepts sep and end keyword arguments; end="" suppresses the trailing newline.
  • Know f-strings (f"{name}: {score:.2f}"), str.format(), and the older % style well enough to read each.
  • Format specifiers to recognize: .2f for two decimals, >10 for right-align in width 10, , for thousands separators.
  • Command-line arguments arrive via sys.argv, where index 0 is the script name and the real arguments start at index 1. Every argument is a string.

Domain 4: Code Documentation and Structure

4.1 Indentation, comments, docstrings, pydoc

  • Python uses indentation to define blocks; inconsistent indentation raises IndentationError.
  • Comments begin with # and run to the end of the line.
  • A docstring is a string literal placed as the first statement of a module, function, class, or method, and it is stored in __doc__.
  • pydoc generates documentation from docstrings, which is why meaningful docstrings matter beyond style.

4.2 Function definitions, signatures, defaults, returns

  • Define with def name(params):. A function with no return (or a bare return) returns None.
  • Default parameter values must come after non-default parameters in the signature.
  • Arguments can be passed positionally or by keyword; mixing is allowed as long as positional ones come first.
  • Never use a mutable object such as [] as a default value; it is created once and shared across calls.
  • A function can return multiple values, which Python packages as a tuple.
  • Variables assigned inside a function are local unless declared global.

Domain 5: Troubleshooting and Error Handling

5.1 Identifying and fixing syntax, logic, and runtime errors

Error typeWhen it appearsTypical example
SyntaxBefore the program runsMissing colon after if, unmatched parenthesis
RuntimeWhile the program runsZeroDivisionError, NameError, IndexError, TypeError
LogicProgram runs but gives wrong resultsUsing < where <= was intended

Logic errors are the hardest to spot because nothing crashes. The reliable technique is to compare actual output to expected output on a tiny input and walk the code line by line.

5.2 Exception handling

  • Structure: try / except / else / finally.
  • else runs only if no exception occurred; finally runs no matter what.
  • Catch specific exceptions (except ValueError:) rather than a bare except:, and order handlers from most specific to most general.
  • raise triggers an exception deliberately; except ValueError as e: captures the exception object.
  • Common pairings to recognize: int("abc") raises ValueError, a missing file raises FileNotFoundError, a bad dictionary key raises KeyError.

5.3 unittest and assertions

  • Test classes inherit from unittest.TestCase, and test methods must start with test.
  • Know the core assertion methods: assertEqual, assertNotEqual, assertTrue, assertFalse, assertIn, and assertRaises.
  • setUp() runs before each test method and tearDown() runs after.
  • The plain assert statement raises AssertionError when its condition is false.

Key Takeaway

For Domain 5, practice reading a traceback from the bottom up: the last line names the exception type and message, and the lines above it show the call path. Being able to name the error class from a code snippet is worth more than memorizing a long list of exceptions.

Domain 6: Operations using Modules and Tools

6.1 io, os, os.path, and sys

  • import module, from module import name, and import module as alias are the import forms to recognize.
  • os: working with the filesystem, including listing directories, removing files, and reading the current directory.
  • os.path: exists(), isfile(), isdir(), join(), basename(), dirname(), splitext(). Use join() instead of hand-built path strings.
  • sys: argv for command-line arguments and exit() to terminate with a status code.
  • io: in-memory text and byte streams such as StringIO, useful for testing output-handling code.

6.2 math, datetime, random

  • math: sqrt, floor, ceil, pow, pi. Note that math.floor(-2.5) is -3, not -2.
  • datetime: building date and datetime objects, subtracting them to get a timedelta, and formatting with strftime.
  • random: random() returns a float in [0.0, 1.0); randint(a, b) includes both endpoints; choice() picks from a sequence; shuffle() reorders a list in place.

Preparing for the Hands-On VS Code Tasks

The official Python Exam Update states that the English Next Generation version places hands-on Python tasks in VS Code between selected-response sections. It also states that this does not change the objective domains or the resulting certificate. In practical terms, the subject matter you study is the same, but you need to be able to write and run code in an editor rather than only recognize correct snippets.

  • Practice in VS Code itself so the interface is familiar: creating a file, running a script, reading the terminal output.
  • Rehearse short, self-contained tasks drawn from the domains above: read a file and count lines, validate input with try/except, write a function with a default argument, or write two unittest assertions.
  • Get comfortable fixing broken code, since Domain 5 skills (reading an error, locating the line, correcting it) transfer directly to a hands-on task.

For a sense of how demanding this mix is, see how hard the ITS-P exam is. To rehearse the selected-response side, the ITS-P practice tests give you timed question practice across all six domains.

Sequencing Your Review by Domain

Since the domains build on one another, the order matters more than the calendar. Here is one logical sequence tied to dependencies between topics.

Week 1

Domain 1 first

  • Types, slicing, and operators underpin everything else, so lock these in before moving on.
  • Drill precedence and identity-versus-equality until predictions are automatic.
Week 2

Domains 2 and 4

  • Loops and branching depend on Domain 1 operators; functions then package that logic.
  • Write functions with defaults and returns, and add docstrings as you go.
Week 3

Domains 3 and 6

  • File handling and os/os.path/sys naturally pair together.
  • Add math, datetime, and random mini-problems.
Week 4

Domain 5 and full review

  • Error handling and unittest work best once you have code to break and test.
  • Finish with mixed practice and hands-on VS Code drills.

The ITS-P requirements page covers whether any prerequisites apply, and the study guide expands this sequence into a fuller plan.

Where the Credential Fits Professionally

The Information Technology Specialist - Python credential is an entry-level, foundational certification. It signals that you can read and write basic Python, handle files and errors, and test your own code. That makes it most useful for students, career changers, and early-career candidates who need a verifiable credential alongside coursework or a portfolio, rather than as a substitute for project experience.

Hiring value varies by employer and role, and no earnings figures are established in the sources reviewed for this page, so treat any specific salary claim with caution. For a qualitative look at the career angle, see ITS-P jobs, the salary guide, and whether the certification is worth it. If you are new to the name itself, what ITS-P is explains the basics.

Frequently Asked Questions

Are the six domains weighted?

The official Python objectives are unweighted, so no published percentage tells you how many questions each domain contributes. Prepare for all six rather than concentrating on one or two.

Did the 2025 update change what the exam covers?

No. The Python Exam Update says the English Next Generation version adds hands-on Python tasks in VS Code between selected-response sections, without changing the objective domains or the resulting certificate. The 2025 copyright date on the objectives document is not an exam-version designation.

How many questions are on the exam, and what score do I need?

The reviewed official sources do not establish an item count, duration, or passing threshold, so none is stated here. Confirm current details with Pearson before scheduling, and see the passing score page for how to approach this.

Which domain should I review first?

Start with Domain 1, Operations using Data Types and Operators, because types, slicing, and operator selection support every other domain. Domain 5 is a good one to save for last, since it is easiest to practice once you have working code to debug and test.

Do I need to practice writing code, or is reading enough?

Practice writing. Because the English Next Generation version includes hands-on tasks in VS Code, you should be able to produce and run short programs, not only recognize correct answers. Pair that with timed selected-response practice from the main practice test site.

Ready to pass your ITS-P exam?

Put this into practice with free ITS-P questions across every exam domain.