diff --git a/README.md b/README.md index 04a0d1b..05f336f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@

What the f*ck Python! 🐍

An interesting collection of surprising snippets and lesser-known Python features.

-[![WTFPL 2.0][license-image]][license-url] Translations: [Chinese 中文](https://github.com/leisurelicht/wtfpython-cn) @@ -23,75 +22,75 @@ So, here we go... - [Structure of the Examples](#structure-of-the-examples) - + [▶ Some fancy Title](#%E2%96%B6-some-fancy-title) + + [▶ Some fancy Title](#-some-fancy-title) - [Usage](#usage) - [👀 Examples](#%F0%9F%91%80-examples) * [Section: Strain your brain!](#section-strain-your-brain) - + [▶ First things first!](#%E2%96%B6-first-things-first) - + [▶ Strings can be tricky sometimes](#%E2%96%B6-strings-can-be-tricky-sometimes) - + [▶ Splitsies](#%E2%96%B6-splitsies) - + [▶ Hash brownies](#%E2%96%B6-hash-brownies) - + [▶ Disorder within order](#%E2%96%B6-disorder-within-order) - + [▶ Keep trying...](#%E2%96%B6-keep-trying) - + [▶ Deep down, we're all the same.](#%E2%96%B6-deep-down-were-all-the-same) - + [▶ For what?](#%E2%96%B6-for-what) - + [▶ Evaluation time discrepancy](#%E2%96%B6-evaluation-time-discrepancy) - + [▶ How not to use `is` operator](#%E2%96%B6-how-not-to-use-is-operator) - + [▶ A tic-tac-toe where X wins in the first attempt!](#%E2%96%B6-a-tic-tac-toe-where-x-wins-in-the-first-attempt) - + [▶ The sticky output function](#%E2%96%B6-the-sticky-output-function) - + [▶ The chicken-egg problem](#%E2%96%B6-the-chicken-egg-problem) - + [▶ `is not ...` is not `is (not ...)`](#%E2%96%B6-is-not--is-not-is-not-) - + [▶ The surprising comma](#%E2%96%B6-the-surprising-comma) - + [▶ Strings and the backslashes](#%E2%96%B6-strings-and-the-backslashes) - + [▶ not knot!](#%E2%96%B6-not-knot) - + [▶ Half triple-quoted strings](#%E2%96%B6-half-triple-quoted-strings) - + [▶ Midnight time doesn't exist?](#%E2%96%B6-midnight-time-doesnt-exist) - + [▶ What's wrong with booleans?](#%E2%96%B6-whats-wrong-with-booleans) - + [▶ Class attributes and instance attributes](#%E2%96%B6-class-attributes-and-instance-attributes) - + [▶ Non-reflexive class method](#%E2%96%B6-non-reflexive-class-method) - + [▶ yielding None](#%E2%96%B6-yielding-none) - + [▶ Nan-reflexivity](#%E2%96%B6-nan-reflexivity) - + [▶ Mutating the immutable!](#%E2%96%B6-mutating-the-immutable) - + [▶ The disappearing variable from outer scope](#%E2%96%B6-the-disappearing-variable-from-outer-scope) - + [▶ Yielding from... return!](#%E2%96%B6-yielding-from-return) - + [▶ Lossy zip of iterators](#%E2%96%B6-lossy-zip-of-iterators) - + [▶ Subclass relationships](#%E2%96%B6-subclass-relationships) - + [▶ The mysterious key type conversion](#%E2%96%B6-the-mysterious-key-type-conversion) - + [▶ Let's see if you can guess this?](#%E2%96%B6-lets-see-if-you-can-guess-this) + + [▶ First things first!](#-first-things-first) + + [▶ Strings can be tricky sometimes](#-strings-can-be-tricky-sometimes) + + [▶ Splitsies](#-splitsies) + + [▶ Hash brownies](#-hash-brownies) + + [▶ Disorder within order](#-disorder-within-order) + + [▶ Keep trying...](#-keep-trying) + + [▶ Deep down, we're all the same.](#-deep-down-were-all-the-same) + + [▶ For what?](#-for-what) + + [▶ Evaluation time discrepancy](#-evaluation-time-discrepancy) + + [▶ How not to use `is` operator](#-how-not-to-use-is-operator) + + [▶ A tic-tac-toe where X wins in the first attempt!](#-a-tic-tac-toe-where-x-wins-in-the-first-attempt) + + [▶ The sticky output function](#-the-sticky-output-function) + + [▶ The chicken-egg problem](#-the-chicken-egg-problem) + + [▶ `is not ...` is not `is (not ...)`](#-is-not--is-not-is-not-) + + [▶ The surprising comma](#-the-surprising-comma) + + [▶ Strings and the backslashes](#-strings-and-the-backslashes) + + [▶ not knot!](#-not-knot) + + [▶ Half triple-quoted strings](#-half-triple-quoted-strings) + + [▶ Midnight time doesn't exist?](#-midnight-time-doesnt-exist) + + [▶ What's wrong with booleans?](#-whats-wrong-with-booleans) + + [▶ Class attributes and instance attributes](#-class-attributes-and-instance-attributes) + + [▶ Non-reflexive class method](#-non-reflexive-class-method) + + [▶ yielding None](#-yielding-none) + + [▶ Nan-reflexivity](#-nan-reflexivity) + + [▶ Mutating the immutable!](#-mutating-the-immutable) + + [▶ The disappearing variable from outer scope](#-the-disappearing-variable-from-outer-scope) + + [▶ Yielding from... return!](#-yielding-from-return) + + [▶ Lossy zip of iterators](#-lossy-zip-of-iterators) + + [▶ Subclass relationships](#-subclass-relationships) + + [▶ The mysterious key type conversion](#-the-mysterious-key-type-conversion) + + [▶ Let's see if you can guess this?](#-lets-see-if-you-can-guess-this) * [Section: Appearances are deceptive!](#section-appearances-are-deceptive) - + [▶ Skipping lines?](#%E2%96%B6-skipping-lines) - + [▶ Teleportation](#%E2%96%B6-teleportation) - + [▶ Well, something is fishy...](#%E2%96%B6-well-something-is-fishy) + + [▶ Skipping lines?](#-skipping-lines) + + [▶ Teleportation](#-teleportation) + + [▶ Well, something is fishy...](#-well-something-is-fishy) * [Section: Slippery Slopes](#section-slippery-slopes) - + [▶ Modifying a dictionary while iterating over it](#%E2%96%B6-modifying-a-dictionary-while-iterating-over-it) - + [▶ Stubborn `del` operation](#%E2%96%B6-stubborn-del-operation) - + [▶ Deleting a list item while iterating](#%E2%96%B6-deleting-a-list-item-while-iterating) - + [▶ Loop variables leaking out!](#%E2%96%B6-loop-variables-leaking-out) - + [▶ Beware of default mutable arguments!](#%E2%96%B6-beware-of-default-mutable-arguments) - + [▶ Catching the Exceptions](#%E2%96%B6-catching-the-exceptions) - + [▶ Same operands, different story!](#%E2%96%B6-same-operands-different-story) - + [▶ The out of scope variable](#%E2%96%B6-the-out-of-scope-variable) - + [▶ Be careful with chained operations](#%E2%96%B6-be-careful-with-chained-operations) - + [▶ Name resolution ignoring class scope](#%E2%96%B6-name-resolution-ignoring-class-scope) - + [▶ Needles in a Haystack](#%E2%96%B6-needles-in-a-haystack) - + [▶ Wild imports](#%E2%96%B6-wild-imports) + + [▶ Modifying a dictionary while iterating over it](#-modifying-a-dictionary-while-iterating-over-it) + + [▶ Stubborn `del` operation](#-stubborn-del-operation) + + [▶ Deleting a list item while iterating](#-deleting-a-list-item-while-iterating) + + [▶ Loop variables leaking out!](#-loop-variables-leaking-out) + + [▶ Beware of default mutable arguments!](#-beware-of-default-mutable-arguments) + + [▶ Catching the Exceptions](#-catching-the-exceptions) + + [▶ Same operands, different story!](#-same-operands-different-story) + + [▶ The out of scope variable](#-the-out-of-scope-variable) + + [▶ Be careful with chained operations](#-be-careful-with-chained-operations) + + [▶ Name resolution ignoring class scope](#-name-resolution-ignoring-class-scope) + + [▶ Needles in a Haystack](#-needles-in-a-haystack) + + [▶ Wild imports](#-wild-imports) * [Section: Read the docs](#section-read-the-docs) - + [▶ All sorted?](#%E2%96%B6-all-sorted) - + [▶ All-true-ation](#%E2%96%B6-all-true-ation) + + [▶ All sorted?](#-all-sorted) + + [▶ All-true-ation](#-all-true-ation) * [Section: The Hidden treasures!](#section-the-hidden-treasures) - + [▶ Okay Python, Can you make me fly?](#%E2%96%B6-okay-python-can-you-make-me-fly) - + [▶ `goto`, but why?](#%E2%96%B6-goto-but-why) - + [▶ Brace yourself!](#%E2%96%B6-brace-yourself) - + [▶ Let's meet Friendly Language Uncle For Life](#%E2%96%B6-lets-meet-friendly-language-uncle-for-life) - + [▶ Even Python understands that love is complicated](#%E2%96%B6-even-python-understands-that-love-is-complicated) - + [▶ Yes, it exists!](#%E2%96%B6-yes-it-exists) - + [▶ Ellipsis](#%E2%96%B6-ellipsis) - + [▶ Inpinity](#%E2%96%B6-inpinity) - + [▶ Let's mangle](#%E2%96%B6-lets-mangle) + + [▶ Okay Python, Can you make me fly?](#-okay-python-can-you-make-me-fly) + + [▶ `goto`, but why?](#-goto-but-why) + + [▶ Brace yourself!](#-brace-yourself) + + [▶ Let's meet Friendly Language Uncle For Life](#-lets-meet-friendly-language-uncle-for-life) + + [▶ Even Python understands that love is complicated](#-even-python-understands-that-love-is-complicated) + + [▶ Yes, it exists!](#-yes-it-exists) + + [▶ Ellipsis](#-ellipsis) + + [▶ Inpinity](#-inpinity) + + [▶ Let's mangle](#-lets-mangle) * [Section: Miscellaneous](#section-miscellaneous) - + [▶ `+=` is faster](#%E2%96%B6--is-faster) - + [▶ Let's make a giant string!](#%E2%96%B6-lets-make-a-giant-string) - + [▶ Minor Ones](#%E2%96%B6-minor-ones) + + [▶ `+=` is faster](#--is-faster) + + [▶ Let's make a giant string!](#-lets-make-a-giant-string) + + [▶ Minor Ones](#-minor-ones) * [~~~ That's all folks! ~~~](#-thats-all-folks-) - [Contributing](#contributing) - [Acknowledgements](#acknowledgements) @@ -3479,7 +3478,7 @@ The idea and design for this collection were initially inspired by Denys Dovhan' # 🎓 License -[![CC 4.0][license-image]][license-url] +[![WTFPL 2.0][license-image]][license-url] © [Satwik Kansal](https://satwikkansal.xyz)