{"id":29821,"date":"2023-02-26T12:59:19","date_gmt":"2023-02-26T12:59:19","guid":{"rendered":"https:\/\/holypython.com\/?p=29821"},"modified":"2023-02-26T14:45:29","modified_gmt":"2023-02-26T14:45:29","slug":"intermediate-level-python-tips-tricks","status":"publish","type":"post","link":"https:\/\/holypython.com\/intermediate-level-python-tips-tricks\/","title":{"rendered":"Intermediate Level Python Tips &#038; Tricks"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"29821\" class=\"elementor elementor-29821\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c334c08 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c334c08\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5a89fdf\" data-id=\"5a89fdf\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-79c0f0d elementor-widget elementor-widget-menu-anchor\" data-id=\"79c0f0d\" data-element_type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"inter\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-a6a10e8 elementor-section-content-middle elementor-section-height-min-height elementor-section-boxed elementor-section-height-default\" data-id=\"a6a10e8\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-5ca0e34\" data-id=\"5ca0e34\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e9b8f74 elementor-widget elementor-widget-heading\" data-id=\"e9b8f74\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Python Tips &amp; Tricks (Part II)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-edc9da5 elementor-widget elementor-widget-heading\" data-id=\"edc9da5\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Intermediate Level<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5deea0a elementor-widget elementor-widget-heading\" data-id=\"5deea0a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">HolyPython.com<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-6c4cff3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6c4cff3\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-c95ef7b\" data-id=\"c95ef7b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0308306 elementor-widget elementor-widget-text-editor\" data-id=\"0308306\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The list continues with slightly more complex Python concepts, tips and tricks.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b9ffdb elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"5b9ffdb\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">36) A beautiful counter: (<i>itertools \/ count<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-841ec6b elementor-widget elementor-widget-text-editor\" data-id=\"841ec6b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>count method from itertools is kind of a smart counter which will automatically update itself inside the same kernel.<\/p><p>Check out how it counts in this mini example:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4aefe1a elementor-widget elementor-widget-html\" data-id=\"4aefe1a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>from itertools import count\r\n\r\nindex = count()\r\nprint(next(index))\r\nprint(next(index))\r\nprint(next(index))\r\nprint(next(index))\r\nprint(next(index))\r\nprint(next(index))<\/code><\/pre>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-25e39a2 elementor-widget elementor-widget-text-editor\" data-id=\"25e39a2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>0<br \/>1<br \/>2<br \/>3<br \/>4<br \/>5<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eefbf91 elementor-widget elementor-widget-text-editor\" data-id=\"eefbf91\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can also put it inside a loop like this:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8c143b2 elementor-widget elementor-widget-html\" data-id=\"8c143b2\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>from itertools import count\r\n\r\nc = count()\r\n\r\nfor i in range(20):\r\n    print(next(c), end=\"|\")<\/code><\/pre>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aeadc13 elementor-widget elementor-widget-text-editor\" data-id=\"aeadc13\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0d50166 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"0d50166\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">37) A different kind of counter: (<i>collections \/ counter<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b9b8917 elementor-widget elementor-widget-text-editor\" data-id=\"b9b8917\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><b>Counter<\/b> method from <b>Collections<\/b> library will count inside your data structures in a sophisticated approach. It will return a dictionary of the results.<\/p><p>It&#8217;s probably the one liner approach as far as counters go.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e46f93 elementor-widget elementor-widget-html\" data-id=\"5e46f93\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>from collections import Counter\r\n\r\ncounter = Counter(['red', 'red', 'red', 'blue', 'yellow'])\r\nprint(counter)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-700fe02 elementor-widget elementor-widget-text-editor\" data-id=\"700fe02\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>Counter({'red': 3, 'blue': 1, 'yellow': 1})<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7380581 elementor-widget elementor-widget-text-editor\" data-id=\"7380581\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>There is more to collections&#8217; counter.<\/p><p>If you pass values as a parameter it will actually form the dictionary for you. You can even construct lists from the counter in a smart way.<\/p><p>Check out this example:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d66a478 elementor-widget elementor-widget-html\" data-id=\"d66a478\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>from collections import Counter\r\n\r\ncounter = Counter(red=1, blue=3, yellow=2)\r\nprint(counter)\r\nprint(list(counter))\r\nprint(dict(counter))<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7aecc37 elementor-widget elementor-widget-text-editor\" data-id=\"7aecc37\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>Counter({'blue': 3, 'yellow': 2, 'red': 1})<br \/>['red', 'blue', 'yellow']<br \/>{'red': 1, 'blue': 3, 'yellow': 2}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b0ffc66 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"b0ffc66\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">38) Extracting nested data: (<i>itertools<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fcc34c4 elementor-widget elementor-widget-text-editor\" data-id=\"fcc34c4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can also flatten nested data using <strong>chain<\/strong> method from <strong>itertools<\/strong>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-220fc55 elementor-widget elementor-widget-html\" data-id=\"220fc55\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import itertools\r\n\r\na = [[1, 2, 3], [4, 5], [6]]\r\nfor i in (itertools.chain.from_iterable(a)):\r\n    print(i)\r\n    \r\nprint(list(itertools.chain.from_iterable(a)))<\/code><\/pre>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3eccd02 elementor-widget elementor-widget-text-editor\" data-id=\"3eccd02\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>[1, 2, 3, 4, 5, 6]<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c434602 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"c434602\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">39) Unpacking: (<i>star notation method<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-367b390 elementor-widget elementor-widget-text-editor\" data-id=\"367b390\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can unpack collections with 1 star notation: <strong>*<\/strong><\/p><p>You can unpack named collections with 2 star notation:\u00a0<strong>**<\/strong><\/p><p>So, if a function takes iterables as argument then you can pass iterables with star notation to such functions.<\/p><p>Here are some examples:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85b881a elementor-widget elementor-widget-html\" data-id=\"85b881a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a = [1,1,1,2,3,75,4,5,6]\r\n\r\nprint(max(*a))<\/code><\/pre>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c9f7f12 elementor-widget elementor-widget-text-editor\" data-id=\"c9f7f12\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>75<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5ef9611 elementor-widget elementor-widget-html\" data-id=\"5ef9611\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import itertools\r\n\r\ndef lister(*x):\r\n    for i in x:\r\n        print(i, end=\"|\")\r\n\r\na = [1,1,1,2,3,75,4,5,6]\r\nlister(*a)<\/code><\/pre>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43bd354 elementor-widget elementor-widget-text-editor\" data-id=\"43bd354\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>1|1|1|2|3|75|4|5|6|<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ce1e398 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"ce1e398\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">40) For loop + else: (<i>for else<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66bba2a elementor-widget elementor-widget-text-editor\" data-id=\"66bba2a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>For else construction confuses even the most seasoned Python programmers sometimes. But it&#8217;s actually not that complicated at all.<\/p><p>Else clause is executed after for loop completes. It can be difficult to know if the loop successfully completed especially if there is a <a href=\"https:\/\/holypython.com\/intermediate-python-lessons\/lesson-10-break-continue\/\">break statement<\/a> in the loop. Else statement here assures us that loop ran successfully throughout.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51d2567 elementor-widget elementor-widget-html\" data-id=\"51d2567\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>for i in range(5):\r\n    print(i)\r\nelse:\r\n    print(\"yes\")<\/code><\/pre>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5cb13e9 elementor-widget elementor-widget-text-editor\" data-id=\"5cb13e9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>0<br \/>1<br \/>2<br \/>3<br \/>4<br \/>yes<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-43d6f44 elementor-widget elementor-widget-text-editor\" data-id=\"43d6f44\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>So it seems redundant hence the confusion but see it this way. What if there was a break statement in the loop:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-17c1d94 elementor-widget elementor-widget-html\" data-id=\"17c1d94\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>for i in range(5):\r\n    print(i)\r\n    if i == 2:\r\n        break\r\nelse:\r\n    print(\"yes\")<\/code><\/pre>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2be055 elementor-widget elementor-widget-text-editor\" data-id=\"f2be055\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>0<br \/>1<br \/>2<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3404bfc elementor-widget elementor-widget-text-editor\" data-id=\"3404bfc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Else clause in For Else structures are completion clauses. They are confused heavily because they resemble if \/ else structures where else triggers a conditional behavior rather than a completion behavior. This could probably be avoided with a slight twist like calling it <strong>else finish<\/strong> or something, but alright. Let&#8217;s love Python with its tiny imperfection and not forget the insane benefits it brings to the table. \ud83d\ude42<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b07fe2f elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"b07fe2f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">41) Swapping Dictionary Key & Values: (<i>zip method<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f919db elementor-widget elementor-widget-text-editor\" data-id=\"5f919db\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>So, how hard is reversing values and keys in a dictionary? Not hard at all, not in Python at least.<\/p><p>Here\u00a0 are some really sleek ways to manipulate Python dictionaries that makes one fall in love with Python once again.<\/p><p>Here is an example:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2add8fc elementor-widget elementor-widget-html\" data-id=\"2add8fc\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a = {1:11, 2:22, 3:33}\r\n\r\nb = zip(a.values(), a.keys())\r\nc = dict(b)\r\n\r\nprint(c)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aca37a8 elementor-widget elementor-widget-text-editor\" data-id=\"aca37a8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>{11: 1, 22: 2, 33: 3}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc509bd elementor-widget elementor-widget-text-editor\" data-id=\"bc509bd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Here it is in a shortened version:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46303c5 elementor-widget elementor-widget-html\" data-id=\"46303c5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a = {1:11, 2:22, 3:33}\r\nb = dict(zip(a.values(), a.keys()))\r\n\r\nprint(c)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-19acd1a elementor-widget elementor-widget-text-editor\" data-id=\"19acd1a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>{11: 1, 22: 2, 33: 3}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f7958c8 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"f7958c8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">42) Swapping Dictionary Key & Values: (<i>dict comprehension method<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea8f90f elementor-widget elementor-widget-text-editor\" data-id=\"ea8f90f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Dictionary Comprehension is a great way to achieve some dictionary operations, here is a great example:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b8d379a elementor-widget elementor-widget-html\" data-id=\"b8d379a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a = {1:11, 2:22, 3:33}\r\n\r\nb = (a.items())\r\nc = {i:j for j,i in b}\r\n\r\nprint(c)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-62165ea elementor-widget elementor-widget-text-editor\" data-id=\"62165ea\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>{11: 1, 22: 2, 33: 3}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52fedc6 elementor-widget elementor-widget-text-editor\" data-id=\"52fedc6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Or the same thing in a shorter way:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42808cb elementor-widget elementor-widget-html\" data-id=\"42808cb\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a = {1:11, 2:22, 3:33}\r\n\r\nb = {i:j for j,i in a.items()}\r\n\r\nprint(c)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4171cb8 elementor-widget elementor-widget-text-editor\" data-id=\"4171cb8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>{11: 1, 22: 2, 33: 3}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a28236a elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"a28236a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">43) Conditional Statements: (<i>One-Liner<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9e6f6de elementor-widget elementor-widget-text-editor\" data-id=\"9e6f6de\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>One liners are a sweet aspect of Python and can be applied to many concepts.<\/p><p>(Also known as ternary operator or casually if-else statement)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-acb42b7 elementor-widget elementor-widget-html\" data-id=\"acb42b7\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a=10\r\n\r\nc = True if a**2 > 100 else False\r\nprint(c)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1888f4b elementor-widget elementor-widget-text-editor\" data-id=\"1888f4b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>False<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-249446f elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"249446f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">44) Lambda: (<i>One-Liner<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66b0d7a elementor-widget elementor-widget-text-editor\" data-id=\"66b0d7a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Lambda is like a user-defined one line mini function. When you have a function that&#8217;s not too complicated and that can be done as a lambda it just makes it much more convenient to type it in 1 simple line. Makes you realize how much Python is practicality oriented.<\/p><p>Lambda syntax can take some getting used to but we have great <a href=\"https:\/\/holypython.com\/intermediate-python-exercises\/exercise-11-python-lambda\/\">interactive lambda exercises<\/a> to help you get moving.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bccbd4b elementor-widget elementor-widget-text-editor\" data-id=\"bccbd4b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Lambda is very useful for defining mini functions in 1 line:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fd87823 elementor-widget elementor-widget-html\" data-id=\"fd87823\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a = lambda x: x**2\nprint(a(5))<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd4f857 elementor-widget elementor-widget-text-editor\" data-id=\"dd4f857\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>25<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc8b425 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"fc8b425\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">45) Returning multiple values: (<i>return statement<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59cd05f elementor-widget elementor-widget-text-editor\" data-id=\"59cd05f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can have a python function return multiple values.<\/p><p>(Not to be confused with multiple return statements which is not possible as return statement terminates a function in Python.)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6e55ced elementor-widget elementor-widget-html\" data-id=\"6e55ced\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>def loc_id(city, county, state):\r\n    return city, county, state\r\n\r\na = loc_id(\"LA\", \"OC\", \"FL\")\r\n\r\nprint(a)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a3d306 elementor-widget elementor-widget-text-editor\" data-id=\"3a3d306\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>(\"LA\", \"OC\", \"FL\")<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7277d31 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"7277d31\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">46) Function return assignments: (<i>One-Liner<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-66d8116 elementor-widget elementor-widget-text-editor\" data-id=\"66d8116\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>One liners are huge in Python, which makes the syntax so attractive and practical sometimes. You can also assign values to multiple variables in one line:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a708c67 elementor-widget elementor-widget-html\" data-id=\"a708c67\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>def loc_id(city, county, state):\r\n    return city, county, state\r\n\r\na,b,c = loc_id(\"LA\", \"OC\", \"FL\")\r\n\r\nprint(a)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-99cee5e elementor-widget elementor-widget-text-editor\" data-id=\"99cee5e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>LA<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a6dd128 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"a6dd128\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">47) Anagram Checker: (<i>sorted function<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-203166a elementor-widget elementor-widget-text-editor\" data-id=\"203166a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\tA simple way to approach this is to use Python&#8217;s <strong>sorted<\/strong> function.\n\nIf 2 words are anagrams they should be the same when both are sorted alphabetically.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b668eef elementor-widget elementor-widget-html\" data-id=\"b668eef\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>def anagram_checker(str1, str2):\r\n    return sorted(str1) == sorted(str2)\r\n\r\nprint(anagram_checker('vases', 'saves'))\r\nprint(anagram_checker('cola', 'coal'))\r\nprint(anagram_checker('cake', 'take'))<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c23a02d elementor-widget elementor-widget-text-editor\" data-id=\"c23a02d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>True<br \/>True<br \/>False<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85fcbcc elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"85fcbcc\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">48) Anagram Checker: (<i>Counter<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-323c00a elementor-widget elementor-widget-text-editor\" data-id=\"323c00a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>We just saw <b>counter<\/b> method. Here is a creative application of it. Counter method of collections library can also be ideal for this task.<\/p><p>What collections.counter does is, it will return a subclass of dict object which has each element as a key and their counts as the value.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-42cd2fb elementor-widget elementor-widget-html\" data-id=\"42cd2fb\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>from collections import Counter \r\ndef anagram_checker(str1, str2): \r\n    return Counter(str1) == Counter(str2)\r\n\r\nprint(anagram_checker('senator', 'treason'))\r\nprint(anagram_checker('section', 'notice'))\r\nprint(anagram_checker('relation', 'oriental'))<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-414508b elementor-widget elementor-widget-text-editor\" data-id=\"414508b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>True<br \/>False<br \/>True<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9b4eec9 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"9b4eec9\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">49) Enumerate: (<i>Enumerated Iterables<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7e5927 elementor-widget elementor-widget-text-editor\" data-id=\"c7e5927\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>When you need to add counters to an iterable, enumerate is usually the most elegant approach. It will return the iterable (say list, tuple, range, string or dictionary etc.) with the counters and returned object will be an enumerate.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7391203 elementor-widget elementor-widget-html\" data-id=\"7391203\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>str=\"Whatsup\"\r\nl=enumerate(str)\r\nprint(list(l))<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eb48ad1 elementor-widget elementor-widget-text-editor\" data-id=\"eb48ad1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>[(0, 'W'), (1, 'h'), (2, 'a'), (3, 't'), (4, 's'), (5, 'u'), (6, 'p')]<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9d3f1b3 elementor-widget elementor-widget-text-editor\" data-id=\"9d3f1b3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can also tell enumerate what number to start from:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e0f21e elementor-widget elementor-widget-html\" data-id=\"3e0f21e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>str=[\"sun\", \"moon\", \"mars\", \"venus\"]\r\nl=enumerate(str,100)\r\nprint(list(l))<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-821c226 elementor-widget elementor-widget-text-editor\" data-id=\"821c226\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>[(100, 'sun'), (101, 'moon'), (102, 'mars'), (103, 'venus')]<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37460ed elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"37460ed\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">50) Most Frequent Value: (<i>max and set<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fdf72c3 elementor-widget elementor-widget-text-editor\" data-id=\"fdf72c3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can find most frequent elements in a list with this short application:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57e5bcd elementor-widget elementor-widget-html\" data-id=\"57e5bcd\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>lst = [1, 2, 3, 4, 2, 2, 3, 1, 4, 4, 4]\nprint(max(set(lst), key = lst.count))\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a6e6ce elementor-widget elementor-widget-text-editor\" data-id=\"3a6e6ce\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>4<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-493f8ea elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"493f8ea\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">51) Advanced Python function parameters: (<i>Lambda, Comprehension, Conditionals)<\/i><\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ada4db5 elementor-widget elementor-widget-text-editor\" data-id=\"ada4db5\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Python is a power house with endless capabilities and twists. Here is more one-liner approach for you.<\/p><p>Instead of this:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d7ec0f7 elementor-widget elementor-widget-html\" data-id=\"d7ec0f7\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>result = 0\nfor i in range(10):\n    if i % 2 == 0:\n        result += i\nprint(result)\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-db228c2 elementor-widget elementor-widget-text-editor\" data-id=\"db228c2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can do this:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4c25634 elementor-widget elementor-widget-html\" data-id=\"4c25634\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>sum(i for i in range(10) if i % 2 == 0)\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-14af91c elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"14af91c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">52) Creating Copies: (<i>list copy method & dict copy method<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6fc176a elementor-widget elementor-widget-text-editor\" data-id=\"6fc176a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Next trio is for copying operations. Copying can be tedious. It can cause conflicts or confusion. It&#8217;s also extremely useful and something we do day in day out. Nevertheless it can be important to know some of the intricacies. Let&#8217;s start simply with the copy method:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50c40c4 elementor-widget elementor-widget-html\" data-id=\"50c40c4\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>lst1 = [\"yellow\", \"gray\", \"brown\"]\nlst2 = lst1.copy()\n\ndict1 = {'Fruit': 'Melon', 'Dessert': \"Ice cream\"};\ndict2 = dict1.copy()\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4753eff elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"4753eff\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">53) Creating Copies: (<i>Slicing<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3dbaa14 elementor-widget elementor-widget-text-editor\" data-id=\"3dbaa14\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can also use slicing to create copies. You may wonder why do I even have to slice it while I can just assign the whole variable. This would create identical objects in the memory which will create problems such as changing one object can change the other one etc.<\/p><p>Identical objects are checked by <strong>(is &#8211; is not)<\/strong> operators.<\/p><p>Thankfully Python slice notions are super cool:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fec9fd2 elementor-widget elementor-widget-html\" data-id=\"fec9fd2\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>lst1 = [\"yellow\", \"gray\", \"brown\"]\nlst2 = lst1[:]\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1ea5f92 elementor-widget elementor-widget-text-editor\" data-id=\"1ea5f92\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Please note that immutable objects such as string and tuples don&#8217;t have copy methods since they will always refer to the same memory ID as long as 2 strings or 2 tuples have the same exact values.<\/p><p>However, copy methods create a copy by reference which means copy points to the original.<\/p><p>If you&#8217;d like to create a completely different copy by creating new values in the memory this can be achieved by the next trick: <b>deepcopy<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a908b8 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"8a908b8\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">54) Copy Library: (<i>Deepcopy<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc5d1c6 elementor-widget elementor-widget-text-editor\" data-id=\"fc5d1c6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>We have seen ways to create shallow copies now let&#8217;s see a way to create a deep copy:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b3931e9 elementor-widget elementor-widget-html\" data-id=\"b3931e9\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import copy\n\nlst1 = [\"yellow\", \"gray\", \"brown\"]\nlst2 = copy.deepcopy(lst1)\n\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d98c47 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"7d98c47\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">55) Swap Values: (<i>One-Liner<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-177715d elementor-widget elementor-widget-text-editor\" data-id=\"177715d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Python has the most straightforward approach to swapping values out there.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b24fc3 elementor-widget elementor-widget-html\" data-id=\"5b24fc3\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a=10\r\nb=20\r\na,b = b,a<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5a65c3f elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"5a65c3f\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">56) Encoding: (<i>utf-8<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9b45a3b elementor-widget elementor-widget-text-editor\" data-id=\"9b45a3b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>29- encoding=&#8217;utf8&#8242;<\/p><p>Sometimes after opening a text file in Python you&#8217;ll get an error like:\u00a0<\/p><p>UnicodeDecodeError: &#8216;charmap&#8217; codec can&#8217;t decode<\/p><p>That&#8217;s because decoding of the data defaults to system defaults and it can fail if you don&#8217;t specify the code when reading the file; just add the correct codec with encoding argument (usually utf8):<\/p><p><strong>open(filename, encoding=&#8217;utf8&#8242;)<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b9b330 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"3b9b330\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">57) Ascii Conversions: (<i>ord<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3ff3e3a elementor-widget elementor-widget-text-editor\" data-id=\"3ff3e3a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ascii is a primitive (today) encoding standard that was dominantly popular through 60s 70s and 80s.<\/p><p>Before Ascii there was 6 bit encoding systems which is 2^6 (64 characters) and Ascii came as an expansion revision with 7 bit code enabling mapping of 2^7 (128 characters). It was always 1byte which is 8bit but the values from 128 to 256 weren&#8217;t defined initially.<\/p><p>Today, Ascii usually means 8bit which equals 2^8 (256) characters mapped. 8 bit also equals 1 byte and Ascii is a 1 byte or single byte encoding system.<\/p><p>So, after the background story here is what ord will do.\u00a0<\/p><ul><li><strong>ord<\/strong> function will tell the integer value (0 to 256) of a character<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82c74ba elementor-widget elementor-widget-html\" data-id=\"82c74ba\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>print(ord(\"K\"))<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6f97538 elementor-widget elementor-widget-text-editor\" data-id=\"6f97538\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>75<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c38ee4c elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"c38ee4c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">58) Ascii Conversions: (<i>chr<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-12b842f elementor-widget elementor-widget-text-editor\" data-id=\"12b842f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Today, UTF-8 became the global standard encoding for data traveling on the internet. That stands for 8-bit Unicode Transformation Format.<\/p><ul><li><strong>chr<\/strong> function will tell the character of an integer value (0 to 256) based on Ascii mapping.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b296536 elementor-widget elementor-widget-html\" data-id=\"b296536\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>print(chr(111))<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2616f78 elementor-widget elementor-widget-text-editor\" data-id=\"2616f78\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>'o'<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7895b49 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"7895b49\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">59) Identity Operators: (<i>is & not is<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9dcc5b0 elementor-widget elementor-widget-text-editor\" data-id=\"9dcc5b0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>is &#8211; is not are identity operators and they will tell if objects are exactly the same object or not.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-93fdb24 elementor-widget elementor-widget-html\" data-id=\"93fdb24\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a=[\"Antarctica\"]\nb=[\"Antarctica\"]\n    \nc=a\nprint(a is b)\nprint(a is c)\nprint(a is not b)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3c66304 elementor-widget elementor-widget-text-editor\" data-id=\"3c66304\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>False<br \/>True<br \/>True<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-899e211 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"899e211\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">60) with open as: (<i>work on open file<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6dab5f6 elementor-widget elementor-widget-text-editor\" data-id=\"6dab5f6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You can use with open as to work on files in a more practical way. (This eliminates the need to open and close files in multiple steps).<\/p><p>Code would go something like:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-36433b7 elementor-widget elementor-widget-html\" data-id=\"36433b7\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>with open('research.csv') as f:\n    data = csv.reader(f)\n    for i in data:\n        print(i)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-8927870 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8927870\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-8d4d600\" data-id=\"8d4d600\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-88afbae elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"88afbae\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">61) Bin for bits: (<i>And a little bit of computer history<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fc5ff47 elementor-widget elementor-widget-text-editor\" data-id=\"fc5ff47\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>So how did it all start? From one-upping the oil candle technology to the age of Netflix, Tinder, Instagram, face recognition, self-driving vehicles, going to Moon, going to Mars, global computer programming literacy movement, decentralized AI, autonomous drones&#8230; And even maybe soon Singularity!<\/p><p>As you are reading these letters they are literally traveling as ones and zeros possibly all the way accross Atlantic Ocean via fiber-optic cables to your home. Next 3 tips are for people who might be interested in bytes and bits which is a system representing these ones and zeros.\u00a0<\/p><p>This might sound trivial but it&#8217;s really not that trivial even for high level programmers or any human in that sense. This is where it all started as far as computers go. I think as a coder everyone should at least take a couple of minutes to understand &#8220;bits&#8221; just as much as it makes sense for a carpenter to understand what a tree is or something like that.<\/p><p>Also, if you watched imitation games, an incredible true story about Alan Turing the man who founded the first modern computer (Turing Machine &#8211; 1936) which was followed by first digital computers such as ABC computer (without CPU hence not programmable) and ENIAC computer (considered to be the first functional digital computer) in late 30s and 40s. These all had a common feature: vacuum tubes. These are like light bulbs which go on and off, on representing 1 and off representing 0. Add enough of these values together and you have digital data. Hurray!<\/p><p>Also <b><i>ComputerHope <\/i><\/b>has a really awesome article about <a href=\"https:\/\/www.computerhope.com\/issues\/ch000984.htm\">Computer Development History<\/a>\u00a0that&#8217;s worth reading.<\/p><p>So, if that story doesn&#8217;t impress you I don&#8217;t know what will but one bit represents 1 value of 2 possibilities, 0 or 1. This whole idea literally is the foundation of all computation and electronics we have and use today.<\/p><p>1 byte on the other hand represents 8 bits which equals 2^8 = 256 possibilities.<\/p><p>Python function <b>bin<\/b> will tell you the bit equivalent of an integer (or amount of possibilities):<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27bb4b5 elementor-widget elementor-widget-html\" data-id=\"27bb4b5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>print(bin(256))\r\nprint(bin(5))\r\nprint(bin(1000000))\r\nprint(bin(65))<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ecc04a2 elementor-widget elementor-widget-text-editor\" data-id=\"ecc04a2\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>0b100000000<br \/>0b101<br \/>0b11110100001001000000<br \/>0b1000001<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-812d879 elementor-widget elementor-widget-image\" data-id=\"812d879\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"469\" height=\"368\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/photo-1578801503688-d30fffee6a9e-Custom.jpg\" class=\"attachment-large size-large wp-image-10739\" alt=\"\" srcset=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/photo-1578801503688-d30fffee6a9e-Custom.jpg 469w, https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/photo-1578801503688-d30fffee6a9e-Custom-300x235.jpg 300w\" sizes=\"(max-width: 469px) 100vw, 469px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-810301d elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"810301d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">62) Bit Length: (<i>How many bits do you need?<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-375a7fe elementor-widget elementor-widget-text-editor\" data-id=\"375a7fe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Note that integer 4 actually represents 5 values including 0 hence 3 bits are needed.<\/p><p>00<br \/>01<br \/>10<br \/>11<br \/>100 &#8211;&gt; 4<br \/>101 &#8211;&gt; 5<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ad4da1 elementor-widget elementor-widget-html\" data-id=\"4ad4da1\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a=4\r\nb=a.bit_length()\r\nprint(b)\r\n\r\nc=9999\r\nd=c.bit_length()\r\nprint(d)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0925f9e elementor-widget elementor-widget-text-editor\" data-id=\"0925f9e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>3<br \/>14<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cd0af0d elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"cd0af0d\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">63) to_bytes: (<i>Numbers to Bytes<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa77272 elementor-widget elementor-widget-text-editor\" data-id=\"aa77272\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Finally, to_bytes method of integers will show the byte representation of an integer in hexadecimal base.<\/p><p>Hexadecimal base represents 16 values or 4 bits hence 2 hexadecimal values equal 1 byte or 8 bits. Hex is used in computer science since it much more convenient than 10 base numbers system when dealing with bits. 1byte can be represented in 2 hexadecimal values. Also conveniently, each memory address is 4bits which equals 1 nibble.<\/p><p>1 nibble = 1 hex = 4 bits = 2^4 values<\/p><p>1 byte = 2 nibbles = 8 bits = 2^8 values<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4a3108d elementor-widget elementor-widget-html\" data-id=\"4a3108d\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>a=15\r\nb=a.to_bytes(2, byteorder=\"big\")\r\nprint(b)\r\n\r\nc=888\r\nd=c.to_bytes(2, byteorder=\"big\")\r\nprint(d)<\/code><\/pre>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2d8e10a elementor-widget elementor-widget-text-editor\" data-id=\"2d8e10a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>b'\\x00\\x0f'<br \/>b'\\x00\\xde'<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-797830a elementor-widget elementor-widget-text-editor\" data-id=\"797830a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>x00 means Null in hexadecimal base. Showing unused bytes. Remember we chose 2 bytes, 1 would be enough.<\/p><p><strong>0-9<\/strong> are used for values 0 to 9 and<br \/><strong>a-f<\/strong> are used for values 10 to 15<br \/>making 16 values total.<\/p><p>That&#8217;s why 15 shows as x00\\x0f (0000_1111) &#8211;&gt; <i>0 for 0 and f for 15<\/i><br \/>200 shows as x00\\xc8 (1010_1000) &#8211;&gt; <i>c is 11 and 8 is 8<\/i><\/p><p><i>Only second bytes are used (which is 2 nibbles which are 4 bits each)<br \/>Byteorder signifies byte representation in descending or ascending order respectively &#8220;big&#8221; or &#8220;little&#8221;<\/i><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0138a43 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"0138a43\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">64) Vim: (<i>coolest code editor<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-39f86e6 elementor-widget elementor-widget-text-editor\" data-id=\"39f86e6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Do you wanna feel like the hacker in Swordfish? Regardless of your answer VIM is addictively cool and useful. It lets you code Python from Command Prompt and will work even when there is no system installed in a highly restricted computer.<\/p><p>VIM is super fast, crash-free and powerful. But there is more than that, VIM is also highly customizable with many extension and plugin opportunities.<\/p><p>You can see all the tips regarding installation and usage of Vim in this <a href=\"https:\/\/holypython.com\/how-to-use-vim-editor-to-write-python-code\/\">Vim Tutorial<\/a> we prepared to get you started. It&#8217;s open-source and free (or rather charityware).<\/p><p>To Start Running VIM:<\/p><ul><li>Just type <code>vim filename.py\u00a0<\/code>from a command prompt such as Anaconda Prompt.<\/li><li>If you see a new window filename at the top and &#8220;&#8211;INSERT&#8211;&#8221; at the bottom bar, you&#8217;ve successfully launched VIM.<\/li><li>Now, VIM has 2 main modes: Editor and Command mode.<ul><li><strong>Editor Mode<\/strong>: You can switch to editor mode by pressing &#8220;<strong>i<\/strong>&#8220;<\/li><li><strong>Command Mode<\/strong>: You can switch to command mode by pressing &#8220;<strong>Esc<\/strong>&#8220;<\/li><\/ul><\/li><li>While in Editor Mode you can type your code or anything<\/li><li>To save and\/or quit you need to switch to command mode and type appropriate commands. Commands are written starting with colon &#8220;<strong>:<\/strong>&#8220;<ul><li>Here are some examples:<ul><li><code>:q<\/code> &gt;&gt;&gt; Quits without saving<\/li><li><code>:w<\/code> &gt;&gt;&gt; Saves without quiting<\/li><li><code>:qw<\/code> &gt;&gt;&gt; Saves and quits<\/li><\/ul><\/li><\/ul><\/li><\/ul><p><em>Note: Please note that you should install Vim as an Administrator otherwise Command Prompt will fail to recognize Vim. Vim installer options exist for most OS out there such as MacOS, Linux, Ubuntu, Windows 64Bit or 32 Bit.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-90dc904 elementor-widget elementor-widget-image\" data-id=\"90dc904\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"431\" height=\"555\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/vim.jpg\" class=\"attachment-full size-full wp-image-10735\" alt=\"\" srcset=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/vim.jpg 431w, https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/vim-233x300.jpg 233w\" sizes=\"(max-width: 431px) 100vw, 431px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05901a0 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"05901a0\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">65) Random Numbers: (<i>import random<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-977164e elementor-widget elementor-widget-text-editor\" data-id=\"977164e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Python&#8217;s default\u00a0<strong>random\u00a0<\/strong>library can be very handy when you need to create random numbers.<\/p><p>randint for an integer between lower and upper limits:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d26c09 elementor-widget elementor-widget-html\" data-id=\"8d26c09\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import random\n\na=random.randint(33, 333)\nprint(a)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6108793 elementor-widget elementor-widget-text-editor\" data-id=\"6108793\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>263<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bbabae1 elementor-widget elementor-widget-text-editor\" data-id=\"bbabae1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>randrange(start, stop, steps), will also give a value in the range but you can also specify a step.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b317250 elementor-widget elementor-widget-html\" data-id=\"b317250\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import random\n\na=random.randrange(0, 50, 8)\nprint(a)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e4f4c68 elementor-widget elementor-widget-text-editor\" data-id=\"e4f4c68\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>40<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b00c1c3 elementor-widget elementor-widget-text-editor\" data-id=\"b00c1c3\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>random() will return a float value between 0 and 1. This can also be used as a random percentage.<\/p><p>You can explore other methods of the <b>random<\/b> library by using <b>dir(random)<\/b> and <b>help(random)<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05bde88 elementor-widget elementor-widget-html\" data-id=\"05bde88\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import random\n\na=random.random()\nprint(a)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2e943f7 elementor-widget elementor-widget-text-editor\" data-id=\"2e943f7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>0.7730286038945102<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e676779 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"e676779\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">66) Opening a Web Page: (<i>webbrowser library<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b5df4a elementor-widget elementor-widget-text-editor\" data-id=\"6b5df4a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Here is an easy recipe to open web pages from within your Python terminal or code.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3d46ac6 elementor-widget elementor-widget-image\" data-id=\"3d46ac6\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"878\" height=\"585\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/photo-1543185377-99cd16011803-Custom.jpg\" class=\"attachment-large size-large wp-image-10740\" alt=\"\" srcset=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/photo-1543185377-99cd16011803-Custom.jpg 878w, https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/photo-1543185377-99cd16011803-Custom-300x200.jpg 300w, https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/photo-1543185377-99cd16011803-Custom-768x512.jpg 768w\" sizes=\"(max-width: 878px) 100vw, 878px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-81832ff elementor-widget elementor-widget-html\" data-id=\"81832ff\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import webbrowser\r\n\r\nf=r'https:\/\/www.google.com'\r\nwebbrowser.open(f)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15396c4 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"15396c4\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">67) Deque: (<i>Sequences with double ends<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e4f098 elementor-widget elementor-widget-text-editor\" data-id=\"7e4f098\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A deque or (Double ended queue) is a two ended Python object with which you can carry out certain operations from both ends.<\/p><p>It can be used when a collection is needed to be operated at both ends and can provide efficiency and simplicity over traditional data structures such as lists.<\/p><p>It also belongs to the standard collections library in Python.<\/p><p>Let&#8217;s check out some of the basic operations of deque:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4749c4b elementor-widget elementor-widget-html\" data-id=\"4749c4b\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import collections\r\na = collections.deque()\r\n\r\na.append(100)\r\na.appendleft(4)\r\nprint(a)\r\n\r\na.extend([200, 300, 400])\r\na.extendleft([3, 2, 1])\r\nprint(a)\r\n\r\na.pop()\r\na.popleft()\r\nprint(a)\r\n\r\na.rotate(3)\r\nprint(a)\r\n\r\na.rotate(-1)\r\nprint(a)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-94469f1 elementor-widget elementor-widget-text-editor\" data-id=\"94469f1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>deque([4, 100])<br \/>deque([1, 2, 3, 4, 100, 200, 300, 400])<br \/>deque([2, 3, 4, 100, 200, 300])<br \/>deque([100, 200, 300, 2, 3, 4])<br \/>deque([200, 300, 2, 3, 4, 100])<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-287302a elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"287302a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">68: Greatest common divisor: (<i>math library<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22cabe0 elementor-widget elementor-widget-text-editor\" data-id=\"22cabe0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Python&#8217;s standard math library has great methods that make almost any basic <strong>math<\/strong> calculation a breeze. Here is <strong>.gcd()<\/strong> method showing the greatest common divisor:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-de97bc9 elementor-widget elementor-widget-html\" data-id=\"de97bc9\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import math\n\nprint(math.gcd(65,780))\nprint(math.gcd(6,40))\nprint(math.gcd(12,40))\n<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4a733e elementor-widget elementor-widget-text-editor\" data-id=\"b4a733e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>65<br \/>2<br \/>4<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2139774 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"2139774\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">69) Play Audio: (<i>os library<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77fd76b elementor-widget elementor-widget-text-editor\" data-id=\"77fd76b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Python&#8217;s native os library is also capable of playing audio files. If you have a default player like VLC it will automatically play the audio in that program.<\/p><p>This could easily be used to create scripts like a super cool personal alarm, sedentary warning, reminder, motivation programs etc.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-79002fa elementor-widget elementor-widget-image\" data-id=\"79002fa\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"724\" height=\"467\" src=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/f3d12fefd36f-Custom-1.jpg\" class=\"attachment-large size-large wp-image-10953\" alt=\"\" srcset=\"https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/f3d12fefd36f-Custom-1.jpg 724w, https:\/\/holypython.com\/wp-content\/uploads\/2020\/06\/f3d12fefd36f-Custom-1-300x194.jpg 300w\" sizes=\"(max-width: 724px) 100vw, 724px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-660ef75 elementor-widget elementor-widget-html\" data-id=\"660ef75\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<pre rel=\"Python\"><code>import os\r\nf=\"Track01.mp3\"\r\nos.system(f)<\/code><\/pre>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d237f90 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"d237f90\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">70) Jupyter Notebook (<i>Shortcuts & Line Magic<\/i>)<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a63d3b1 elementor-widget elementor-widget-text-editor\" data-id=\"a63d3b1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"language-python\">Jupyter Notebook can be fantastic for learning, teaching and experimenting. Here are some ways to make it even more fantastic: shortcuts.<\/p><p class=\"language-python\"><em>Only the most common shortcuts are shared here.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5530193 elementor-widget elementor-widget-text-editor\" data-id=\"5530193\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div>\n<h6>Command Mode<\/h6>\n<table>\n<tbody>\n<tr>\n<td class=\"\"><code>Enter<\/code><\/td>\n<td class=\"\">enter edit mode<\/td>\n<\/tr>\n<tr>\n<td class=\"\"><code>Shift<\/code>\u00a0<code>Enter<\/code><\/td>\n<td class=\"\">run section, skip to next section<\/td>\n<\/tr>\n<tr>\n<td class=\"\"><code>Ctrl<\/code>\u00a0<code>Enter<\/code><\/td>\n<td class=\"\">run section<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>\u2191 , \u2193<\/code>\u00a0or\u00a0<code>k , j<\/code><\/td>\n<td class=\"\">selects cell above or below<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>a , b<\/code><\/td>\n<td class=\"\">inserts cell above or below<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>x , c , v<\/code><\/td>\n<td class=\"\">cut , copy , paste cell<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>Shift<\/code>\u00a0<code>v<\/code><\/td>\n<td class=\"\">paste cell above<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>z<\/code><\/td>\n<td class=\"\">undo last cell deletion<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>d<\/code>,\u00a0<code>d<\/code><\/td>\n<td class=\"\">delete selected cell<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>Shift<\/code>\u00a0<code>m<\/code><\/td>\n<td class=\"\">merge cell below<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>Ctrl<\/code>\u00a0<code>s<\/code><\/td>\n<td class=\"\">saves<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div>\n<h6>Edit Mode<\/h6>\n<table>\n<tbody>\n<tr>\n<td class=\"\"><code>Tab<\/code><\/td>\n<td class=\"\">code completion or indent<\/td>\n<\/tr>\n<tr>\n<td class=\"\"><code>Shift<\/code>\u00a0<code>Tab<\/code><\/td>\n<td class=\"\">tooltip<\/td>\n<\/tr>\n<tr>\n<td class=\"\"><code>Ctrl<\/code>\u00a0<code>]<\/code><\/td>\n<td class=\"\">indent<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>Ctrl<\/code>\u00a0<code>[<\/code><\/td>\n<td class=\"\">deindent<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>Ctrl<\/code>\u00a0<code>a<\/code><\/td>\n<td class=\"\">selects all<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>Ctrl<\/code>\u00a0<code>z<\/code><\/td>\n<td class=\"\">undo<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>Ctrl<\/code>\u00a0<code>Shift<\/code>\u00a0<code>z<\/code><\/td>\n<td class=\"\">redo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h6>Jupyter Notebook Magic<\/h6>\n<table>\n<tbody>\n<tr>\n<td class=\"\"><code>%matplotlib inline<\/code><\/td>\n<td class=\"\">allows graphic output within notebook<\/td>\n<\/tr>\n<tr>\n<td class=\"\"><code>%%timeit<\/code>\u00a0<code>Tab<\/code><\/td>\n<td class=\"\">to measure the performance of processes (explained in #78 also)<\/td>\n<\/tr>\n<tr>\n<td class=\"\"><code>%cls<\/code><\/td>\n<td class=\"\">clears the screen<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>%cd<\/code><\/td>\n<td class=\"\">to change the directory<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>%paste<\/code><\/td>\n<td class=\"\">pastes from the clipboard<\/td>\n<\/tr>\n<tr class=\"\">\n<td class=\"\"><code>%source<\/code><\/td>\n<td class=\"\">displays the source code of an object<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fcea724 elementor-widget elementor-widget-text-editor\" data-id=\"fcea724\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p class=\"language-python\">You can really step up your Jupyter game by taking a quick look at these shortcuts!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Python Tips &amp; Tricks (Part II) Intermediate Level HolyPython.com The list continues with slightly more complex Python concepts, tips and tricks. 36) A beautiful counter: (itertools \/ count) count method from itertools is kind of a smart counter which will automatically update itself inside the same kernel. Check out how it counts in this mini [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10896,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[34,52],"tags":[],"class_list":["post-29821","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-intermediate","category-tutorials"],"acf":[],"_links":{"self":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/posts\/29821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/comments?post=29821"}],"version-history":[{"count":0,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/posts\/29821\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/media\/10896"}],"wp:attachment":[{"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/media?parent=29821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/categories?post=29821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/holypython.com\/wp-json\/wp\/v2\/tags?post=29821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}