Skip to content

Latest commit

Β 

History

History
783 lines (639 loc) Β· 162 KB

concept-exercise-mapping.md

File metadata and controls

783 lines (639 loc) Β· 162 KB

Python reference

Python is an interpreted, dynamically (but strongly) typed, and garbage-collected general programming language that has become extremely popular due to its readability, low barrier for entry, and exceptionally deep ecosystem of libraries and tools. Python is object-based, but is inherently multi-paradigm and has drawn together influences from a wide range of programming languages, including ABC, Haskell, Lisp, and Modula-3. It is ideal for prototyping and ad-hoc tasks, but also sees wide use in scientific computing, web development, and automation.

Below are concepts that were extracted/identified in Python based on Exercism's V2 exercises. Resources used include:


Unique to Python

"Pythonic"/Python Community

Baseline

Concepts Introduced in the "Basics" Exercise (_Guido's Gorgeous Lasagna_):

General

Concepts needed for a good working understanding of the language

Current "Core" Concepts:

Detailed

Concepts needed for a deeper understanding/fluency

"Intermediate" Concepts

Object-Oriented Specific

OOP-Specific/Class Oriented Concepts

Specialized

(These are probably outside scope of an Exercism Concept exercise, but might make good longer/practice exercises that recieve mentoring)

Advanced/Specialized Concepts

These datatypes will very rarely be encountered in the wild, the first because it's more of an internal implementation detail and the second because it's hyper-specific:


Implementations in Progress

Expect this table to be updated as larger concepts are broken down or additional concepts/exercises are identified.

See the Python Exercises page for committed/planned on website concept & practice exercises.

Below are currently identified concepts needing:

  1. Issues logged (TBD issue entry)
  2. Concept & About documents written (starred concepts - links are to stub files)
  3. PRs written for a concept exericise (the issue is listed for design, but there is no exercise name linked)
  4. Possible Imrovements (check github for additional improvement issues)

Concept Includes About & Introduction Exercise Prerequisites Design./Issue Status/PR
list-methods
Topics
about.mdπŸ”…introduction.md Chaitanas Colossal Coaster 🎒
Needs
  • lists
.meta folder WIP
numbers
Topics
about.mdπŸ”…introduction.md Currency Exchange πŸ’° basics .meta folder WIP
lists
Topics
about.mdπŸ”…introduction.md Elyses Enchantments ✨
Needs
  • comparisons
  • conditionals
  • strings
.meta folder WIP
bools
Topics
about.mdπŸ”…introduction.md Ghost Gobble Arcade Game πŸ‘» basics .meta folder WIP
basics
Topics
about.mdπŸ”…introduction.md Guidos Gorgeous Lasagna None .meta folder WIP
dicts
Topics
about.mdπŸ”…introduction.md Inventory Management πŸ“‹
Needs
  • loops
  • lists
  • tuples
.meta folder WIP
string-methods
Topics
about.mdπŸ”…introduction.md Litte Sister's Essay πŸ““
Needs
  • basics
  • strings
.meta folder WIP
enums
Topics
  • enums
about.mdπŸ”…introduction.md Log Levels πŸ’»
Needs
  • classes
  • conditionals
  • loops
  • list-comprehensions
  • sequences
  • string-formatting
  • string-methods
  • tuples
.meta folder WIP
loops
Topics
about.mdπŸ”…introduction.md Making the Grade 🈴
Needs
  • basics
  • comparisons
  • conditionals
  • lists
  • strings
.meta folder WIP
string-formatting
Topics
about.mdπŸ”…introduction.md Pretty Leaflet πŸƒ
Needs
  • basics
  • strings
  • string-methods
.meta folder WIP
strings
Topics
about.mdπŸ”…introduction.md Processing Logs βš™ basics N/A WIP
none
Topics
about.mdπŸ”…introduction.md Restaurant Rozalynn πŸ₯˜
Needs
  • bools
  • conditionals
  • functions
  • dict-methods
  • list-methods
  • loops
.meta folder WIP
tuples
Topics
about.mdπŸ”…introduction.md Tisbury Treasure Hunt 🧭
Needs
  • basics,bools,loops
  • numbers,strings
.meta folder WIP
conditionals
Topics
about.mdπŸ”…introduction.md conditionals (Story TBD) βš– basics .metaf older Draft - content missing.
class-composition*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • classes
  • class-customization
  • class-inheritance
  • comparisons
  • decorators
  • dicts
  • functions
  • higher-order functions
  • iteration
  • lists
  • numbers
  • sequences
  • sets
  • strings
  • tuples
#2352 Pending
import*
Topics
about.mdπŸ”…introduction.md ON HOLD ON HOLD
context-manager-customization*
Topics
  • with
  • contextlib
  • @contextlib.contextmanager
  • contextlib.closing()
  • contextlib.nullcontext()
  • contextlib.suppress
  • conextlib.redirect_stdout()
  • contextlib.redirect_stderr()
  • class contextlib.ContextDecorator
  • context-handling
  • context-managers
  • context-manager types
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • classes
  • class customization
  • class-inheritance
  • comparisons
  • rich-comparisons
  • decorators
  • dicts
  • dict-methods
  • raising-and-handling-errors
  • functions
  • functional tools
  • generators
  • higher-order-functions
  • iteration
  • lists
  • list-methods
  • loops
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • testing
  • tuples
  • with-statement
#2370 Pending
with-statement*
Topics
  • with
  • context-handling
  • context-managers
  • finally
  • file handling
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • comparisons
  • dicts
  • dict-methods
  • functions
  • functional-tools
  • generators
  • higher-order-functions
  • iteration
  • lists
  • list-methods
  • loops
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2369 Pending
itertools*
Topics
  • itertools
  • count()
  • cycle()
  • repeat()
  • accumulate()
  • product()
  • chain() & chain.from_iterable()
  • groupby()
  • islice()
  • zip_longest() and the zip() built-in
  • permutations()
  • combinations()
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • comparisons
  • rich-comparisons
  • dicts
  • dict-methods
  • functions
  • functional tools
  • generators
  • higher-order functions
  • Identity methods is and is not
  • iteration
  • lists
  • list-methods
  • loops
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2368 Pending
iterators*
Topics
  • Iterators
  • iterator protocol
  • __next_()
  • __stopiteration__()
  • __iter__()
  • iter()
  • __getitem__()
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • classes
  • comparisons
  • rich-comparisons
  • decorators
  • descriptors
  • dicts
  • dict-methods
  • functions
  • higher-order-functions
  • lists
  • list-methods
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2367 Pending
functools*
Topics
  • Partial application
  • single dispatch
  • higher-order functions
  • functools.partial()
  • partial.func
  • partial.args
  • partial.keywords
  • functools.update_wrapper()
  • funtools.cache()
  • @functools.cached_property()
  • @functools.lru_cache()
  • @functools.total_ordering
  • @functools.singledispatch
  • @.register()
  • @functools.wraps()
  • class functools.partialmethod()
  • class functools.singledispatchmethod()
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • classes
  • class-customization
  • class-components
  • comparisons
  • rich-comparisons
  • decorators
  • descriptors
  • dicts
  • dict-methods
  • functions
  • function-arguments
  • higher-order-functions
  • iteration
  • lists
  • list-methods
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2366 Pending
descriptors*
Topics
  • descrptor protocol
  • descriptors
  • private variables
  • name mangling
  • data descriptors
  • non-data descriptors
  • class attributes
  • class members
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • classes
  • class-customization
  • class-composition
  • class-inheritance
  • comparisons
  • decorators
  • dicts
  • iteration
  • lists
  • numbers
  • sequences
  • sets
  • strings
  • tuples
#2365 Pending
function-arguments*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • comparisons
  • dicts
  • dict-methods
  • functions
  • iteration
  • lists
  • list-methods
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2354 Pending
unpacking-and-multiple-assignment*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • comparisons
  • dicts
  • dict-methods
  • functions
  • function-arguments
  • higher-order-functions
  • functional tools
  • Identity methods is and is not
  • iteration
  • lists
  • list-methods
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2360 Pending
functional-tools*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • comparisons
  • dicts
  • dict-methods
  • functions
  • function-arguments
  • higher-order-functions
  • iteration
  • lists
  • list-methods
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2359 Pending
anonymous-functions*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • comparisons
  • dicts
  • dict-methods
  • functions
  • function-arguments
  • higher-order functions
  • iteration
  • lists
  • list-methods
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2357 Pending
higher-order-functions*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • comparisons
  • dicts
  • dict-methods
  • functions
  • function-arguments
  • iteration
  • lists
  • list-methods
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2355 Pending
class-inheritance*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • classes
  • class-customization
  • comparisons
  • decorators
  • dicts
  • functions
  • higher-order-functions
  • iteration
  • lists
  • numbers
  • sequences
  • sets
  • strings
  • tuples
#2351 Pending
sets*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • comparisons
  • dicts
  • lists
  • loops
#2296 Pending
other-comprehensions*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • conditionals
  • comparisons
  • loops
  • iteration
#2294 Pending
generators*
Topics
about.mdπŸ”…introduction.md
Needs
  • conditionals
  • dicts
  • functions
  • higher-order-functions
  • lists
  • loops
  • iteration
  • iterators
  • sequences
#2293 Pending
sequences*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • iteration
  • lists
  • list-methods
  • sets
  • strings
  • tuples
#2290 Pending
complex-numbers*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • numbers
#2208 Issue needs re-write.
rich-comparisons*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • classes
  • class-customization
  • class-inheritance
  • class-composition
  • comparisons
  • dicts
  • dict-methods
  • iteration
  • lists
  • list-methods
  • numbers
  • operator-overloading
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2287 Pending
comparisons*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • dicts
  • lists
  • sets
  • strings
  • tuples
  • numbers
  • iteration
#2288 Pending
generator-expressions*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • conditionals
  • comparisons
  • loops
  • generators
  • iterators
  • iteration
  • list-comprehensions
  • other-comprehensions
#2292 Pending
list-comprehensions*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • comparisons
  • conditionals
  • lists
  • list-methods
  • loops
  • iteration
  • sequences
#2295 Pending
bytes*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
class-interfaces*
Topics
  • Multiple Inheritance
  • MRO
  • Abstract Base Clases
about.mdπŸ”…introduction.md TBD TBD TBD
collections*
Topics
  • namedtuple()
  • Counter
  • dequeue
  • defaultdict
  • OrderedDict
  • ChainMap
about.mdπŸ”…introduction.md TBD TBD TBD
dataclasses-and-namedtuples*
Topics
  • dataclasses
  • @dataclass
  • collections.namedtuple() - decorators
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • classes
  • class-customization
  • comparisons
  • decorators
  • dicts
  • iteration
  • lists
  • numbers
  • sequences
  • sets
  • strings
  • tuples
#2361 Pending
decorators*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • comparisons
  • dicts
  • dict-methods
  • functions
  • function-arguments
  • higher-order-functions
  • iteration
  • lists
  • list-methods
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2356 Pending
functions*
Topics
  • Call semantics
  • Namespaces
  • callable objects
  • scope
  • nested functions
  • closures
  • return
  • global
  • nonlocal
  • "first class" functions
  • function attributes
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • comparisons
  • dicts
  • dict-methods
  • iteration
  • lists
  • list-methods
  • numbers
  • sequences
  • sets
  • strings
  • string-methods
  • tuples
#2353 Pending
class-customization*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • booleans
  • classes
  • comparisons
  • decorators
  • dicts
  • functions
  • higher-order-functions
  • iteration
  • lists
  • numbers
  • sequences
  • sets
  • strings
  • tuples
#2350 Pending
classes*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • comparisons
  • dicts
  • iteration
  • lists
  • numbers
  • sequences
  • sets
  • strings
  • tuples
#2349 Pending
dict-methods*
Topics
about.mdπŸ”…introduction.md
Needs
  • basics
  • bools
  • conditionals
  • comparisons
  • dicts
  • lists
  • loops
  • numbers
  • strings
  • tuples
#2348 Pending
aliasing*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
binary data* TBD about.mdπŸ”…introduction.md TBD TBD TBD
bitflags*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
bitwise-operators*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
iteration*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
memoryview*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
number-variations*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
operator-overloading*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
raising-and-handling-errors*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
regular-expressions*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
testing*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
text-processing* TBD about.mdπŸ”…introduction.md TBD TBD TBD
type-hinting*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
unicode-regular-expressions*
Topics
  • regular expressions
  • unicode
  • third-party libraries
  • regex lib
about.mdπŸ”…introduction.md TBD TBD TBD
user-defined-errors*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
walrus-operator*
Topics
  • assignment expression, :=
about.mdπŸ”…introduction.md TBD TBD TBD
string-methods-splitting*
Topics
about.mdπŸ”…introduction.md TBD TBD TBD
*general Composition NA NA NA NA NA
*general Data Structures NA NA NA NA NA
*general Encapsulation NA NA NA NA NA
*general Interfaces NA NA NA NA NA
*general Lookup efficiency NA NA NA NA NA
*general Mutation NA NA NA NA NA
*general Mutability in Python NA NA NA NA NA
*general Polymorphism NA NA NA NA NA
*general Recursive data structures NA NA NA NA NA
*general Scope NA NA NA NA NA
*general Standard Library NA NA NA NA NA
*general State NA NA NA NA NA
*no stand-alone Duck Typing NA Multiple Multiple Multiple NA
*no stand-alone Dynamic Typing NA Multiple Multiple Multiple NA
*no stand-alone del NA Multiple Multiple Multiple NA
*no stand-alone Expressions NA Multiple Multiple Multiple NA
*no stand-alone Identity testing NA Multiple Multiple Multiple NA
*no stand-alone Operators NA Multiple Multiple Multiple NA
*no stand-alone Operator precedence NA Multiple Multiple Multiple NA
*no stand-alone Order of Evaluation NA Multiple Multiple Multiple NA
*no stand-alone type NA Multiple Multiple Multiple NA
*no stand-alone type conversion NA Multiple Multiple Multiple NA
*no stand-alone Immutability in Python NA Multiple Multiple Multiple NA

Concepts flagged as general are broad enough that we are questioning if they need a specific concept exercise.
Concepts flagged no stand alone are explained/utilized across multiple concept exercises.