{"id":38798,"url":"https://github.com/anishLearnsToCode/python-workshop-7","name":"python-workshop-7","description":"Python 🐍 Workshop on Language Basics, Constructs and introduction in Data Structures \u0026 Algorithms 👨‍💻 @ What After College 🎓.","projects_count":66,"last_synced_at":"2026-04-03T04:00:16.415Z","repository":{"id":98363530,"uuid":"323645763","full_name":"anishLearnsToCode/python-workshop-7","owner":"anishLearnsToCode","description":"Python 🐍 Workshop on Language Basics, Constructs and introduction in Data Structures \u0026 Algorithms 👨‍💻 @ What After College 🎓.","archived":false,"fork":false,"pushed_at":"2020-12-27T08:22:23.000Z","size":39,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-06T05:03:38.587Z","etag":null,"topics":["algorithm","data-structures","dictionary","git","intro-to-prgramming","lists","python","python3","stack","tuples","wac","what-after-college"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anishLearnsToCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-12-22T14:16:14.000Z","updated_at":"2022-06-08T13:34:17.000Z","dependencies_parsed_at":"2023-04-06T08:06:12.233Z","dependency_job_id":null,"html_url":"https://github.com/anishLearnsToCode/python-workshop-7","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anishLearnsToCode/python-workshop-7","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anishLearnsToCode%2Fpython-workshop-7","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anishLearnsToCode%2Fpython-workshop-7/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anishLearnsToCode%2Fpython-workshop-7/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anishLearnsToCode%2Fpython-workshop-7/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anishLearnsToCode","download_url":"https://codeload.github.com/anishLearnsToCode/python-workshop-7/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anishLearnsToCode%2Fpython-workshop-7/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31333229,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T03:20:36.090Z","status":"ssl_error","status_checked_at":"2026-04-03T03:20:35.133Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"readme":"# Python 🐍 Basics Workshop @What After College\n\n[![cp](https://img.shields.io/badge/also%20see-Competitve%20Programming-1f72ff.svg)](https://github.com/anishLearnsToCode/competitive-programming)\n[![cp](https://img.shields.io/badge/also%20see-Other%20Courses-1f72ff.svg)](https://github.com/anishLearnsToCode/course-list)\n\n\u003cdetails\u003e\n    \u003csummary\u003e\u003cb\u003eWorkshop Timings\u003c/b\u003e\u003c/summary\u003e\n    Workshop Dates: 26th - 27th December 2020 \u003cbr\u003e\n    Workshop Timings: 9:00 AM - 2:00 PM (9 - 14) \u003cbr\u003e\n    Break Timings: 11:00 AM - 12:00 AM (11 - 12)\n\u003c/details\u003e\n\n📺 [Workshop Link (Zoom)](https://us02web.zoom.us/j/85024093659?pwd=MHV0RmVvczJubUptY2pFYUVhNnRYUT09) |\n📽 [Class Recordings](https://photos.app.goo.gl/6bxQxGLjvi3wcyYU9) |\n🌊 [Course Flow](course-flow.md)\n\n## Index\n- [Introduction](#introduction)\n- [Getting Started with Python](#getting-started-with-python)\n- [Day 1](#day-1)\n- [Day 2](#day-2)\n- [Capstone Project](#capstone-project)\n- [Further Reading](#further-reading)\n- [Python Books](#python-books-)\n- [Future Path??](#future-scope-and-path)\n\n## Introduction\nSolutions to all sample problems on HackerRank under the \n[Python domain](https://www.hackerrank.com/domains/python) can be \nlooked up [here](https://github.com/anishLearnsToCode/hackerrank-python).\n\nProgramming is a very hands process and is both an art as well as a science. We are\nengineers and are required to create efficient solutions but at the same time our programs should be \nhighly readable and flexible and all the other snappy terms which makes it an art as well.\n\nTo become proficient in this art, there are many resources, and books and tutorials. Each has it's merit\nand making the first step in any direction is commendable, but the cardinal factor at the end of the day\nwill be you sitting down (or standing) and writing code. No book or resource can substitute that.\n\nSo, what are you waiting for 😀😉 - try as many questions (below or otherwise) as you can.... 🐱‍👤    \nHappy Coding :octocat: 🐱‍💻 \n\nYou can stalk your instructor on \n[LinkedIn](https://www.linkedin.com/in/anishsachdeva1998/), \n[GitHub](https://github.com/anishLearnsToCode) \u0026\n[Instagram](https://www.instagram.com/anish.sachdeva_/).\n\n## Getting Started With Python\nWe need to install and configure a few things before we can write and run any Python code. To write Python code we \nneed the Python interpreter on our machine.\n\n### 1. Install the Python 3 Interpreter\nTo write python programs on your machine we need the Python interpreter. There are 2 popular versions of Python \nout there right now Python 2 and Python 3. There are breaking changes between these versions and this course will be \ntaught in Version 3. So as long as you have python version 3.{something}.{something} you're good to go 🙂\n\nDownload python from [this website](https://www.python.org/downloads/) 🌐. \n\nTo check that python has been correctly installed on your machine run the following command on your terminal:\n```shell script\npython --version\n```\n\nIt should have an output akin to:\n```shell script\nPython 3.8.3 \n```\n\nOnce that Python has been successfully installed, we need to install a code editor or IDE so that we can write \nprograms and run them. I suggest using __VS Code__ if you prefer a Code editor over an IDE (or if you don't know the\ndifference between Code editor and IDE 😉). using a code editor will aso be less intensive on computing resources.\n\nI personally prefer the __JetBrains PyCharm__, but warning ⚠ it is a heavy software and might not run properly on \nall machines (especially laptops that are constrained for resources).\n\n### 2. Installing VS Code (or go to step 3 - Installing PyCharm)\n1. Download the setup from [here](https://code.visualstudio.com/).\n2. Run the setup which is pretty straight forward. Just click next like 10 times and voila!\n\n### 3. Installing JetBrains PyCharm\n1. You can either install the educational edition (free) from [here](https://www.jetbrains.com/pycharm-edu/).\n2. Or you can create an account on JetBrains if you have a university email address and then install the \n    [JetBrains Toolbox](https://www.jetbrains.com/toolbox-app/).\n3. You can easily manage JetBrains IDE's and projects using the ToolBox app. From the ToolBox app you can now install\n    either IntelliJ PyCharm Edu Edition or Ultimate Edition.    \n\n### 4. Installing git (Optional - Only required for Windows users)\nThis is an optional step of your getting started guide and can be skipped. Although installing git and using it\nin your projects is highly recommended. For a learning path to learn git have a look at the \n[Future Path + Scope](#future-scope-and-path) section.\n\nInstall git from the [git-scm](https://git-scm.com/downloads) website. Run the setup and click next like 10 times\nand use the recommended settings for installation. \n\nThere will be a section when it will ask the standard text editor and gie you an option between _Vim_ and _nano_. \nIf you are not familiar with _Vim_ then opt for _nano_.\n\n__IMPORTANT__ Opt for _nano_ if not familiar with _Vim_.\n\nTo check your installation of git check that git bash has been intalled and run the following command on your \nterminal.\n```shell script\ngit --version\n```\n\nThe output should be akin to \n```shell script\ngit version 2.24.1.windows.2\n```\n\n### 5. Writing your first Python Program\nOpen your text editor/IDE and create a new file `hello_world.py` and in that file copy paste the following code \nsnippet.\n```python\nprint('hello world !')\n```\n\nTo run the code navigate to file in terminal and run the following commands.\n\n```shell script\npython hello_world.py\n\u003e\u003e\u003e hello world !\n```\n\n## [Day 1](https://github.com/anishLearnsToCode/python-workshop-7/tree/master/day_1)\n### Topics Covered\n- [Hello World!](day_1/hello_world.py)\n- [Print Function](day_1/print_function.py)\n- [Strings](day_1/strings.py)\n- [Variables](day_1/variables.py)\n- [Variable Names](day_1/variable_names.py)\n- [Taking User Input](day_1/taking_user_input.py)\n- [Integer Input](day_1/integer_input.py)\n- [Arithmetic Operators](day_1/arithmetic_operator.py)\n- [Operator Shorthand](day_1/operator_shorthand.py)\n- [Boolean Operators](day_1/boolean_operators.py)\n- [Truthy Falsy Values](day_1/truthy_falsy.py)\n- [If Else Statements](day_1/if_else_statements.py)\n- [Hackerrank If-Else Problem](day_1/python_if_else.py)\n- [Even Odd Program](day_1/even_odd.py)\n- [Ternary Operator](day_1/ternary_operator.py)\n- [While Loops](day_1/while_loop.py)\n- [Factorial Using While Loop](day_1/factorial_while.py)\n- [Range Objects](day_1/range_object.py)\n- [Sum N Natural Numbers (While Loop)](day_1/sum_n_natural_numbers.py)\n- [Sum Squares (While Loop)](day_1/sum_squares.py)\n- [For Loops](day_1/for_loops.py)\n- [Sum N Natural Numbers (For Loop)](day_1/sum_n_natural_numbers_for.py)\n- [Sum Squares (For Loop)](day_1/sum_squares_for.py)\n- [Factorial Using For Loop](day_1/factorial_for.py)\n- [Loop Control Flow](day_1/loop_control_flow.py)\n- [Functions](day_1/functions.py)\n- [Combinatorics Functions](day_1/combinatorics.py)\n- [Lists](day_1/lists.py)\n- [Complex List](day_1/complex_list.py)\n- [Iterating Over Lists](day_1/list_iterate.py)\n\n### Sample Questions\n| Question | Solution Link |\n|:---------|:--------:|\n| [Say \"Hello World\" With Python](https://www.hackerrank.com/challenges/py-hello-world)| [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/introduction/SayHelloWorldWithPython.py) |\n| [Python If-Else](https://www.hackerrank.com/challenges/py-if-else) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/introduction/PythonIfElse.py) |\n| [Arithmetic Operators](https://www.hackerrank.com/challenges/python-arithmetic-operators) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/introduction/ArithmeticOperator.py) |\n| [Python Division](https://www.hackerrank.com/challenges/python-division) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/introduction/Division.py) |\n| [Loops](https://www.hackerrank.com/challenges/python-loops) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/introduction/Loops.py)|\n| [List Comprehensions](https://www.hackerrank.com/challenges/list-comprehensions) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/basic-data-types/ListComprehension.py) |\n| [Find the Runner-Up Score](https://www.hackerrank.com/challenges/find-second-maximum-number-in-a-list) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/basic-data-types/FindTheRunnerUpScore.py) |\n| [Nested Lists](https://www.hackerrank.com/challenges/nested-list) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/basic-data-types/nested-lists.py) |\n| [Finding The Percentage](https://www.hackerrank.com/challenges/finding-the-percentage) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/basic-data-types/finding-the-percentage.py) |\n| [Lists](https://www.hackerrank.com/challenges/python-lists) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/basic-data-types/Lists.py) |\n| [Tuples](https://www.hackerrank.com/challenges/python-tuples) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/basic-data-types/tuples.py) |\n| [sWAP cASE](https://www.hackerrank.com/challenges/swap-case) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/strings/swap-case.py) |\n| [String Split and Join](https://www.hackerrank.com/challenges/python-string-split-and-join) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/strings/string-split-and-join.py) |\n| [What's Your Name](https://www.hackerrank.com/challenges/whats-your-name) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/strings/whats-your-name.py) |\n\n## [Day 2](https://github.com/anishLearnsToCode/python-workshop-7/tree/master/day_2)\n\n### Topics Covered\n- [List Input](day_2/taking_list_input.py)\n- [Map Operator](day_2/map_operator.py)\n- [Tuple](day_2/tuple.py)\n- [Dictionary](day_2/dictionary.py)\n- [Frequency Dictionary](day_2/frequency_dict.py)\n- [Complex Dictionary](day_2/complex_dictionary.py)\n- [Iterating a Dictionary](day_2/iterating_dict.py)\n- [Inbuilt Functions](day_2/inbuilt_functions.py)\n- [Math Package](day_2/math_package.py)\n- [Random Package](day_2/random_package.py)\n\n### Sample Questions\n| Question | Solution Link |\n|:---------|:--------:|\n| [Write a Function](https://www.hackerrank.com/challenges/write-a-function) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/introduction/WriteAFunction.py) |\n| [Print Function](https://www.hackerrank.com/challenges/python-print) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/introduction/PrintFunction.py) |\n| [collections.Counter()](https://www.hackerrank.com/challenges/collections-counter) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/collections/collections-counter.py) |\n| [DefaultDict Tutorial](https://www.hackerrank.com/challenges/defaultdict-tutorial) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/collections/default-dict-tutorial.py) |\n| [Collections.namedTuple()](https://www.hackerrank.com/challenges/py-collections-namedtuple) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/collections/collections-named-tuple.py) |\n| [Collections.orderedDict()](https://www.hackerrank.com/challenges/py-collections-ordereddict) | [Solution](https://github.com/anishLearnsToCode/hackerrank-python/blob/master/collections/collections-ordered-dict.py) |\n\n## Capstone Project\n- [Hangman Game (CLI)](https://github.com/anishLearnsToCode/hangman-cli-game)\n- [Alien Invasion 👾 (GUI)](https://github.com/anishLearnsToCode/alien-invasion)\n\nHave Fun 😀🎮🕹! \n\n## Further Reading\n- [w3 School Python](https://www.w3schools.com/python/)\n- [HackerRank python Domain](https://www.hackerrank.com/domains/python)\n- [Why is it called Python?](http://www.python.org/doc/faq/general/#why-is-it-called-python)\n- [Projects Created on Python](http://www.python.org/about/success)\n- [C++ vs. Java vs. Python Language Speed Test (Informal)](https://www.youtube.com/watch?v=C8jeRug6agk)\n- [Math Module](https://docs.python.org/3/library/math.html)\n- [Stack Overflow Survey 2020](https://insights.stackoverflow.com/survey/2020)\n- [Python Example Projects and Project Based Tutorials](https://realpython.com/tutorials/projects/)\n- [Django: Web Development on Python](https://www.djangoproject.com/)\n- [Falcon: Minimalist Web Framework](https://falcon.readthedocs.io/en/stable/)\n\n## Python Books 📕\n- [Python Crash Course](https://github.com/anishLearnsToCode/books/blob/master/python/python-crash-course.pdf)\n- [Python in a Nutshell](https://github.com/anishLearnsToCode/books/blob/master/python/python-in-a-nutshell-3e.pdf)\n- [Programming Python](https://github.com/anishLearnsToCode/books/blob/master/python/programming-python-4e.pdf)\n- [Python For Data Analysis](https://github.com/anishLearnsToCode/books/blob/master/python/python-for-data-analysis-2e.pdf)\n\n## Future Scope and Path\nNow that you have learnt the basics of Python and also built an amazing project that showcases\nyour skills, how to move ahead and learn more? What else could you work on? Here are a \nfew suggestions:\n\n### Data Structures and Algorithms\nData Structures and Algorithms is an immensely important topic required for Software development and\nis used by organizations for all sizes as a tool for employee hiring and recruitment. To get better\nat this I recommend that you practice questions in the \n[Data Structures](https://www.hackerrank.com/domains/data-structures) and \n[Algorithms](https://www.hackerrank.com/domains/algorithms) \ndomain on HackerRank and you can have a look at solutions to many of those problems in the \nsolution repositories given below.\n\n| Problem Domain | Solution Repository |\n|----------------|---------------------|\n| [Data Structures](https://www.hackerrank.com/domains/data-structures) | [Solutions](https://github.com/anishLearnsToCode/hackerrank-data-structures) |\n| [Algorithms](https://www.hackerrank.com/domains/algorithms) | [Solutions](https://github.com/anishLearnsToCode/hackerrank-algorithms) |\n\nYou can views solutions to problems in Python (or any of your preferred programming language)\nand you are most welcome to contribute to the repository solutions to unsolved problems \nor solutions in more languages (aka Python). \n\nYou can also try questions on [Leet Code](https://leetcode.com/) and have a look at the \n[solutions repository](https://github.com/anishLearnsToCode/leetcode-algorithms)\nand are most welcome to contribute just as above 😀\n\n### Core Python\nBefore starting of your journey in Data Structures or \n[web development](#web-development) or even \n[machine learning](#machine-learning-)\nanother good first step can be just developing your core Python skills further so that you are \nfamiliar with all the different constructs that the language has to offer. That can be done on \nHackerRank in the \n[Python Domain](https://www.hackerrank.com/domains/python) \nand you can have a look at solutions to all the problems\n[here](https://github.com/anishLearnsToCode/hackerrank-python).\n\n### Web Development\nPython is a very versatile programming language and is being used for all things from biology\nto robotics, computer vision and even serve side rendered web applications and api's.\nAs you are now proficient with the programming language you can start learning a web \ndevelopment framework like \n[Django](https://www.djangoproject.com/) or\n[Falcon](https://falcon.readthedocs.io/en/stable/).\n\nDjango is a have all web development framework and you can even build very large, highly modern\ncluster based web sites that can be deployed to scale. You can use it just to create a server-side\nAPI with a separate client facing application or a MVC (Model view controller) based application\nthat has server side rendering.\n\nFalcon is a relatively light weight web development platform but it is blazing fast ⚡ and that serves\nit's own purpose. It can be used to create a super fast very minimalistic server side API's \nand can aso be used to create server side job runners like mail sending and background processing.\n\nYou could always use multiple server side frameworks which will give you the perfect opportunity\nto use buzz words like docker, kubernetes 🛳, clusters, swarms and add all these buzz words to\nyour resume 😉. \n\n### Machine Learning 🔥\nSpeaking of buzz words... Machine Learning has enjoyed fame of meteoric proportions and there are\nplenty of resources to get started with ML and Python has somehow become the defacto language\nused in Machine Learning / Deep Learning applications and is being sed by Engineers \u0026 \nscientists of many different domains that have written numerous libraries serving various purposes\nall around the globe 🌎 which is good for us ☺.\n\nSome popular libraries are:\n- [numpy](https://numpy.org/)\n- [scikit-learn](https://scikit-learn.org/stable/)\n- [tensorflow](https://www.tensorflow.org/)\n- [open-cv](https://opencv.org/)\n- [pyTorch](https://pytorch.org/)\n\nTo get started with Machine Learning I recommend the ubiquitous \n[Machine Learning by Stanford](https://www.coursera.org/learn/machine-learning)\ncourse on [Coursera](https://www.coursera.org) by Andrew Ng.\n\nThis may be old but it's essence and relevance haven't dwindled at all. Solutions to all problems\nwith well written code can be found [here](https://github.com/anishLearnsToCode/ml-stanford).\n\n### Learning Git ![git-scm](https://img.icons8.com/color/25/000000/git.png)\nThis is not very correlated to Java, but Git is a technology being used by all organizations big and small \nthat wish to maintain their code over teams of varied sizes and manage projects. Even this repository which you \nare currently reading in is being maintained by [git]() \u0026\nhas been deployed on [github]().\n\nBeing proficient with git and version control will help you manage all your projects, be in any language Java,\nPython, C++ and even non-programming projects very efficiently and you will be able to easily maintain project \nstate over all your devices.\n\nThere is an excellent [Version Control with Git](https://www.coursera.org/learn/version-control-with-git) \ncourse on Coursera by Atlassian or you can even try this \n[Git Introductory 30min Video](https://www.youtube.com/watch?v=SWYqp7iY_Tc)\non YouTube to learn the basics of git.\n\nSo, what are you waiting for git started 😁 (bad pun!)\n","created_at":"2024-01-13T13:59:58.417Z","updated_at":"2026-04-03T04:00:16.435Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Getting Started With Python","Future Scope and Path","Further Reading","Introduction","[Day 1](https://github.com/anishLearnsToCode/python-workshop-7/tree/master/day_1)","[Day 2](https://github.com/anishLearnsToCode/python-workshop-7/tree/master/day_2)","Python Books 📕","Capstone Project"],"sub_categories":["3. Installing JetBrains PyCharm","2. Installing VS Code (or go to step 3 - Installing PyCharm)","Machine Learning 🔥","Web Development","4. Installing git (Optional - Only required for Windows users)","Data Structures and Algorithms","Learning Git ![git-scm](https://img.icons8.com/color/25/000000/git.png)","Sample Questions","1. Install the Python 3 Interpreter"],"projects_url":"https://awesome.ecosyste.ms/api/v1/lists/anishlearnstocode%2Fpython-workshop-7/projects"}