diff --git a/README.md b/README.md index 07f1a5c..27d2f44 100644 --- a/README.md +++ b/README.md @@ -28,128 +28,72 @@ So, here we go... - [Usage](#usage) - [👀 Examples](#-examples) - [Section: Strain your brain!](#section-strain-your-brain) - - [▶ Strings can be tricky sometimes *](#%E2%96%B6-strings-can-be-tricky-sometimes-) - - [💡 Explanation:](#-explanation) - - [▶ Splitsies ^](#%E2%96%B6-splitsies-%5E) - - [💡 Explanation:](#-explanation-1) + - [▶ Strings can be tricky sometimes](#%E2%96%B6-strings-can-be-tricky-sometimes) + - [▶ Splitsies](#%E2%96%B6-splitsies) +- [is same as](#is-same-as) +- [but](#but) +- [isn't the same as](#isnt-the-same-as) - [▶ Time for some hash brownies!](#%E2%96%B6-time-for-some-hash-brownies) - - [💡 Explanation](#-explanation) - - [▶ The disorder within order ^](#%E2%96%B6-the-disorder-within-order-%5E) - - [💡 Explanation:](#-explanation-2) - - [▶ Keep trying? *](#%E2%96%B6-keep-trying-) - - [💡 Explanation:](#-explanation-3) - - [▶ Deep down, we're all the same. *](#%E2%96%B6-deep-down-were-all-the-same-) - - [💡 Explanation:](#-explanation-4) + - [▶ The disorder within order](#%E2%96%B6-the-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) - - [💡 Explanation:](#-explanation-5) - - [▶ Evaluation time discrepancy ^](#%E2%96%B6-evaluation-time-discrepancy-%5E) - - [💡 Explanation](#-explanation-1) + - [▶ Evaluation time discrepancy](#%E2%96%B6-evaluation-time-discrepancy) - [▶ Messing around with `is` operator^](#%E2%96%B6-messing-around-with-is-operator%5E) - - [💡 Explanation:](#-explanation-6) - [▶ 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) - - [💡 Explanation:](#-explanation-7) - [▶ The sticky output function](#%E2%96%B6-the-sticky-output-function) - - [💡 Explanation](#-explanation-2) - - [▶ The chicken-egg problem ^](#%E2%96%B6-the-chicken-egg-problem-%5E) - - [💡 Explanation](#-explanation-3) + - [▶ 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-) - - [💡 Explanation](#-explanation-4) - [▶ The surprising comma](#%E2%96%B6-the-surprising-comma) - - [💡 Explanation:](#-explanation-8) - - [▶ Strings and the backslashes\ ^](#%E2%96%B6-strings-and-the-backslashes%5C-%5E) - - [💡 Explanation](#-explanation-5) + - [▶ Strings and the backslashes](#%E2%96%B6-strings-and-the-backslashes) - [▶ not knot!](#%E2%96%B6-not-knot) - - [💡 Explanation:](#-explanation-9) - [▶ Half triple-quoted strings](#%E2%96%B6-half-triple-quoted-strings) - - [💡 Explanation:](#-explanation-10) - [▶ Midnight time doesn't exist?](#%E2%96%B6-midnight-time-doesnt-exist) - - [💡 Explanation:](#-explanation-11) - [▶ What's wrong with booleans?](#%E2%96%B6-whats-wrong-with-booleans) - - [💡 Explanation:](#-explanation-12) - [▶ Class attributes and instance attributes](#%E2%96%B6-class-attributes-and-instance-attributes) - - [💡 Explanation:](#-explanation-13) - [▶ yielding None](#%E2%96%B6-yielding-none) - - [💡 Explanation:](#-explanation-14) - [▶ Mutating the immutable!](#%E2%96%B6-mutating-the-immutable) - - [💡 Explanation:](#-explanation-15) - [▶ The disappearing variable from outer scope](#%E2%96%B6-the-disappearing-variable-from-outer-scope) - - [💡 Explanation:](#-explanation-16) - [▶ When True is actually False](#%E2%96%B6-when-true-is-actually-false) - - [💡 Explanation:](#-explanation-17) - [▶ Lossy zip of iterators](#%E2%96%B6-lossy-zip-of-iterators) - - [💡 Explanation:](#-explanation-18) - [▶ From filled to None in one instruction...](#%E2%96%B6-from-filled-to-none-in-one-instruction) - - [💡 Explanation](#-explanation-6) - - [▶ Subclass relationships *](#%E2%96%B6-subclass-relationships-) - - [💡 Explanation:](#-explanation-19) - - [▶ The mysterious key type conversion *](#%E2%96%B6-the-mysterious-key-type-conversion-) - - [💡 Explanation:](#-explanation-20) + - [▶ 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) - - [💡 Explanation:](#-explanation-21) - [Section: Appearances are deceptive!](#section-appearances-are-deceptive) - [▶ Skipping lines?](#%E2%96%B6-skipping-lines) - - [💡 Explanation](#-explanation-7) - - [▶ Teleportation *](#%E2%96%B6-teleportation-) - - [💡 Explanation:](#-explanation-22) + - [▶ Teleportation](#%E2%96%B6-teleportation) - [▶ Well, something is fishy...](#%E2%96%B6-well-something-is-fishy) - - [💡 Explanation](#-explanation-8) - [Section: Watch out for the landmines!](#section-watch-out-for-the-landmines) - [▶ Modifying a dictionary while iterating over it](#%E2%96%B6-modifying-a-dictionary-while-iterating-over-it) - - [💡 Explanation:](#-explanation-23) - - [▶ Stubborn `del` operation *](#%E2%96%B6-stubborn-del-operation-) - - [💡 Explanation:](#-explanation-24) - [▶ Deleting a list item while iterating](#%E2%96%B6-deleting-a-list-item-while-iterating) - - [💡 Explanation:](#-explanation-25) - [▶ Loop variables leaking out!](#%E2%96%B6-loop-variables-leaking-out) - - [💡 Explanation:](#-explanation-26) - [▶ Beware of default mutable arguments!](#%E2%96%B6-beware-of-default-mutable-arguments) - - [💡 Explanation:](#-explanation-27) - [▶ Catching the Exceptions](#%E2%96%B6-catching-the-exceptions) - - [💡 Explanation](#-explanation-9) - [▶ Same operands, different story!](#%E2%96%B6-same-operands-different-story) - - [💡 Explanation:](#-explanation-28) - [▶ The out of scope variable](#%E2%96%B6-the-out-of-scope-variable) - - [💡 Explanation:](#-explanation-29) - [▶ Be careful with chained operations](#%E2%96%B6-be-careful-with-chained-operations) - - [💡 Explanation:](#-explanation-30) - [▶ Name resolution ignoring class scope](#%E2%96%B6-name-resolution-ignoring-class-scope) - - [💡 Explanation](#-explanation-10) - [▶ Needles in a Haystack ^](#%E2%96%B6-needles-in-a-haystack-%5E) - - [💡 Explanation:](#-explanation-31) - [▶ Yielding from... return!](#-yielding-from-return) - - [💡 Explanation:](#-explanation-31) - [▶ Wild imports](#%E2%96%B6-wild-imports) - - [💡 Explanation:](#-explanation-32) - [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-) - - [💡 Explanation:](#-explanation-33) - - [▶ `goto`, but why? *](#%E2%96%B6-goto-but-why-) - - [💡 Explanation:](#-explanation-34) - - [▶ Brace yourself! *](#%E2%96%B6-brace-yourself-) - - [💡 Explanation:](#-explanation-35) - - [▶ Let's meet Friendly Language Uncle For Life ^](#%E2%96%B6-lets-meet-friendly-language-uncle-for-life-%5E) - - [💡 Explanation:](#-explanation-36) - - [▶ Even Python understands that love is complicated *](#%E2%96%B6-even-python-understands-that-love-is-complicated-) - - [💡 Explanation:](#-explanation-37) + - [▶ 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) - - [💡 Explanation:](#-explanation-38) - - [▶ Ellipsis ^](#%E2%96%B6-ellipsis-%5E) - - [💡 Explanation](#-explanation-11) - - [▶ Inpinity *](#%E2%96%B6-inpinity-) - - [💡 Explanation:](#-explanation-39) - - [▶ Let's mangle ^](#%E2%96%B6-lets-mangle-%5E) - - [💡 Explanation:](#-explanation-40) + - [▶ Ellipsis](#%E2%96%B6-ellipsis) + - [▶ Inpinity](#%E2%96%B6-inpinity) + - [▶ Let's mangle](#%E2%96%B6-lets-mangle) - [Section: Miscellaneous](#section-miscellaneous) - [▶ `+=` is faster](#%E2%96%B6--is-faster) - - [💡 Explanation:](#-explanation-41) - [▶ Let's make a giant string!](#%E2%96%B6-lets-make-a-giant-string) - - [💡 Explanation](#-explanation-12) - [▶ Explicit typecast of strings](#%E2%96%B6-explicit-typecast-of-strings) - - [💡 Explanation:](#-explanation-42) - [▶ Minor Ones](#%E2%96%B6-minor-ones) - [Contributing](#contributing) - [Acknowledgements](#acknowledgements) - - [Some nice Links!](#some-nice-links) - [🎓 License](#-license) - [Help](#help) - [Surprise your geeky pythonist friends?](#surprise-your-geeky-pythonist-friends) @@ -161,8 +105,7 @@ So, here we go... All the examples are structured like below: -> ### ▶ Some fancy Title * -> The asterisk at the end of the title indicates the example was not present in the first release and has been recently added. +> ### ▶ Some fancy Title > > ```py > # Setting up the code. @@ -222,7 +165,7 @@ Now, just run `wtfpython` at the command line which will open this collection in ## Section: Strain your brain! -### ▶ Strings can be tricky sometimes * +### ▶ Strings can be tricky sometimes 1\. ```py @@ -273,7 +216,7 @@ Makes sense, right? --- -### ▶ Splitsies ^ +### ▶ Splitsies ```py >>> 'a'.split() @@ -356,7 +299,7 @@ So, why is Python all over the place? --- -### ▶ The disorder within order ^ +### ▶ The disorder within order ```py from collections import OrderedDict @@ -454,7 +397,7 @@ What is going on here? --- -### ▶ Keep trying? * +### ▶ Keep trying? ```py def some_func(): @@ -514,7 +457,7 @@ Iteration 0 --- -### ▶ Deep down, we're all the same. * +### ▶ Deep down, we're all the same ```py class WTF: @@ -617,7 +560,7 @@ for i, some_dict[i] in enumerate(some_string): --- -### ▶ Evaluation time discrepancy ^ +### ▶ Evaluation time discrepancy 1\. ```py @@ -900,7 +843,7 @@ Even when the values of `x` were different in every iteration prior to appending --- -### ▶ The chicken-egg problem ^ +### ▶ The chicken-egg problem 1\. ```py @@ -994,7 +937,7 @@ SyntaxError: invalid syntax --- -### ▶ Strings and the backslashes\ ^ +### ▶ Strings and the backslashes **Output:** ```py @@ -1493,7 +1436,7 @@ Most methods that modify the items of sequence/mapping objects like `list.append --- -### ▶ Subclass relationships * +### ▶ Subclass relationships **Output:** ```py @@ -1517,7 +1460,7 @@ The Subclass relationships were expected to be transitive, right? (i.e., if `A` --- -### ▶ The mysterious key type conversion * +### ▶ The mysterious key type conversion ```py class SomeClass(str): @@ -1670,7 +1613,7 @@ The built-in `ord()` function returns a character's Unicode [code point](https:/ --- -### ▶ Teleportation * +### ▶ Teleportation ```py import numpy as np @@ -1780,7 +1723,7 @@ Yes, it runs for exactly **eight** times and stops. --- -### ▶ Stubborn `del` operation * +### ▶ Stubborn `del` operation ```py class SomeClass: @@ -2249,7 +2192,7 @@ class SomeClass: --- -### ▶ Needles in a Haystack ^ +### ▶ Needles in a Haystack 1\. ```py @@ -2477,7 +2420,7 @@ NameError: name 'some_weird_name_func_' is not defined This section contains few of the lesser-known interesting things about Python that most beginners like me are unaware of (well, not anymore). -### ▶ Okay Python, Can you make me fly? * +### ▶ Okay Python, Can you make me fly? Well, here you go @@ -2495,7 +2438,7 @@ Sshh.. It's a super secret. --- -### ▶ `goto`, but why? * +### ▶ `goto`, but why? ```py from goto import goto, label @@ -2523,7 +2466,7 @@ Freedom! --- -### ▶ Brace yourself! * +### ▶ Brace yourself! If you are one of the people who doesn't like using whitespace in Python to denote scopes, you can use the C-style {} by importing, @@ -2548,7 +2491,7 @@ Braces? No way! If you think that's disappointing, use Java. Okay, another surpr --- -### ▶ Let's meet Friendly Language Uncle For Life ^ +### ▶ Let's meet Friendly Language Uncle For Life **Output (Python 3.x)** ```py @@ -2579,7 +2522,7 @@ There we go. --- -### ▶ Even Python understands that love is complicated * +### ▶ Even Python understands that love is complicated ```py import this @@ -2680,7 +2623,7 @@ Try block executed successfully... - `else` clause after try block is also called "completion clause" as reaching the `else` clause in a `try` statement means that the try block actually completed successfully. --- -### ▶ Ellipsis ^ +### ▶ Ellipsis ```py def some_func(): @@ -2740,7 +2683,7 @@ Ellipsis --- -### ▶ Inpinity * +### ▶ Inpinity The spelling is intended. Please, don't submit a patch for this. @@ -2759,7 +2702,7 @@ The spelling is intended. Please, don't submit a patch for this. --- -### ▶ Let's mangle ^ +### ▶ Let's mangle 1\. ```py