Skip to content

This repository is created for beginners who want to get started with Python

License

Notifications You must be signed in to change notification settings

MLSA-UETP/Python-for-beginners

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

65 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ Python-for-beginners

This Python tutorial for beginners provides complete overview of Python. Explorer Python features, Python syntax, python applications.

1. What is Python? ๐Ÿค”

Python has quickly become a favorite- itโ€™s being taught in universities, and also being used for everything from scripting and web development to machine learning and data science. But what is Python?

Python is a general-purpose programming language that is interpreted, object-oriented and dynamically-typed. Guido Van Rossum, its BDFL (Benevolent Dictator For Life), named it over the British comedy group Monty Python. The implementation we widely use is CPython (written in C). Python has powerful frameworks and libraries. You can install these libraries with pip, and find them in PyPI (Python Package Index).๐Ÿ’ป

2. Why Learn Python? ๐Ÿค”

There is more than one reason why you should learn this language:

  • It is great for both startups as well as big organizations. It is also beginner-friendly.๐Ÿ’ผ
  • Python is open-source and has a large community. It is one of the top 5 in the largest communities on StackOverflow, the most-used languages on GitHub, and the largest Meetup communities.๐Ÿ‘ฅ
  • It has great career opportunities. Python jobs pay well and provide stability.๐Ÿ’ฐ
  • Python has many powerful frameworks like Django and Flask for web development. They take care of the trivial tasks and make it easier to develop for the web.๐ŸŒ
  • It is also great for machine learning, data science, and artificial intelligence. It has libraries for tasks involved in these domains.
  • You can use Raspberry Pi to create DIYs and other projects like robots, arcade machines, remote-controlled toys, and cameras.๐Ÿค– ๐Ÿ•น๏ธ ๐Ÿš€ ๐Ÿ“ท
  • Pythonโ€™s readability and ease-of-use make developers more productive.

3. What is it used for? ๐Ÿ”ง

Python is a general-purpose language, but is used almost everywhere:

  • Web development
  • Game development
  • Machine Learning
  • Data Science
  • Artificial Intelligence
  • Scripting
  • Computer Vision
  • Scraping
  • Natural Language Processing
  • Data analytics
  • Scientific and Numeric computing
  • Software Application Development
  • Desktop GUI
  • Network Programming

4. Is Python Easy to Learn? ๐Ÿค”

Python is definitely easy to learn, that is why python is taught to university students- to create interest in programming. You can gain expertise in python with this free python tutorial. Python is:

  • Easy to learn- it has a smooth learning curve
  • Easy to read- it is easy to read and understand someone elseโ€™s code
  • Easy to write- Pythonโ€™s syntax is like English
  • Easy to debug- it gives you full tracebacks

5. How to Learn Python? ๐Ÿ“–

Want to learn Python and build a career in it? We have laid down steps to help you:

  • Code while you learn
  • Read books
  • Watch videos/ Do an online Python course
  • Work with machine learning and other libraries
  • Build projects
  • Read interview questions
  • Contribute to open-source projects
  • Python cheat sheet containing 100s of free tutorials, practicals, projects, (everything you need to master python)

Top Python Books ๐Ÿ“š

These are some books you should read to improve your Python skills:

6. Basics of Python for beginners ๐Ÿ”ฐ

Python Features ๐ŸŽฏ

Letโ€™s discuss some features of Python now.

  • Easy to learn/read/write/debug
  • Expressive
  • Free and Open-Source
  • High-level
  • Portable
  • Interpreted
  • Object-oriented
  • Extensible
  • Embeddable
  • Large standard library
  • GUI programming
  • Dynamically typed

d. Flavors of Python ๐Ÿ˜‹

Python has more than one implementation. We use CPython, others are:

  • CPython- Written in C
  • Jython- Written in Java
  • IronPython- Implemented in C#
  • Brython- Browser Python
  • RubyPython- Bridge between Python and Ruby interpreters
  • PyPY- Implemented in Python
  • MicroPython- Runs on a microcontroller

e. File Extensions

Python files may have one of the following extensions:

  • .py
  • .pyc
  • .pyd
  • .pyo
  • .pyw
  • .pyz

7. Python Syntax ๐Ÿ’ป๐Ÿ’ฌ

To learn about variables, operators, and other topics, refer to the links above. Here, we will talk about the syntax of Python code.

  • Line Structure - Python Programs consist of logical lines. Each line has a NEWLINE token at the end. Blank lines are ignored.
  • Multiline statements - There are no semicolons or braces in Python (you can use semicolons if you want, but they are not mandatory)
    • Backward slash - To distribute a statement across multiple lines in Python.
    • Triple quotes - Put strings in triple quotes to span them across multiple lines.
  • Comments - They explain code and are ignored by the interpreter. Declared by hash (#).
  • Docstrings - Documentation strings that explain code. Retained at runtime for inspection.
  • Indentation - Since there are no curly braces, you need to indent code blocks equally. You can use tabs or spaces, but not a combination of both. PEP8 recommends using 4 spaces.
  • Multiple statements in one line - You can use semicolons to separate multiple statements in one line. You can also put an if-statementโ€™s single-line body in one line.
  • Quotations - You can delimit strings with single or double quotes, but not both (opening with one and closing with another). If you use single quotes inside the string, use double quotes to delimit. You can escape quotes inside strings with the escape character ().
  • Identifiers - These are names of elements, and are case-sensitive. You need to follow some rules when naming identifiers.
  • Variables - They hold values. Python follows duck-typing and is dynamically-typed. You donโ€™t need to declare the type of variable, that is determined by the interpreter at runtime.
  • String formatters - For this, you can use the % operator, the format() method, or f-strings.
  • Python vs Java vs C++ - Curly braces are mandatory in Java and C++, but Python uses whitespace indentation to delimit code. Semicolons are optional in Python, but can cause errors in C++ and Java. Python is dynamically-typed, Java and C++ are statically-typed. Java is faster than Python.

8. Popular IDEs ๐Ÿ“ฑ

While you learn Python, you will use an IDE (Integrated Development Environment) to run the python code. You can choose one or more of the following. Here, you can write, edit, test and debug code. It has build automation, code linting, testing, and debugging. This speeds up your work.

a. IDLE

Pricing: Free IDLE comes with Python. It is lightweight and simple.

b. Sublime Text 3

Pricing: Freemium Sublime Text 3 is a popular code editor and also supports other languages. It is fast, customizable, and has a large community. It has packages available for debugging, auto-completion, and code linting,etc. for Python, Django, Flask, and scientific development.

c. Atom

Pricing: Free Atom is an editor by GitHub and is open-source. It is customizable and has packages like autocomplete-python, linter-flake8, and python-debugger.

d. Thonny

Pricing: Free Thonny is an IDE you can install. It has a very simple UI for beginners, but also has many useful features like syntax error highlighting, debugging, code completion, and step-through expression evaluation.

e. PyCharm

Pricing: Freemium PyCharm is not for beginners. It is created by JetBrains and has two versions- Community and Professional. It has features like code completion, code inspections, error-highlighting and fixes, debugging, version control system and code refactoring. However, PyCharm is resource-intensive.

f. Visual Studio Code

Pricing: Free VS Code is a free and open-source IDE by Microsoft. It has features like intelligent code completion, linting for potential errors, debugging and unit testing, and you can add extensions. It is also lightweight.

g. Vim

Pricing: Free The VIM text editor comes preinstalled in MacOS and UNIX, and is available for Windows. It has keyboard shortcuts and is extendible. It also has plugins for syntax highlighting, code completion, debugging, and refactoring.

h. Spyder

Pricing: Free This is an open-source IDE and can be installed with Anaconda. It has features like autocompletion, debugging, and iPython shell.

i. repl.it

Pricing: Free This is an online compiler- you don't need to install Python and set up an environment with this. It also has support for other languages.

j. JupyterLab

Pricing: Free JupyterLab is the next-gen UI for Project Jupyter. It has all the building blocks of the Jupyter Notebook, like notebooks, terminal, text editor, file browser, and rich output. The UI is flexible.

k. Eclipse + PyDev

Pricing: Free PyDev is a Python IDE for Eclipse. Using the PyDev plugin with Eclipse, we can develop for Python.

9. How Long Will it Take to Learn Python? ๐Ÿ•ฐ๏ธ

Python is an easy language to learn and has a smooth learning curve. Learning the basics will not take much time, you can learn python basics with this python tutorial. You will need to practice as you learn. The more you practice, the better you are at it. You will need to build projects as well. Once you have followed the steps mentioned above, you can say you know Python. So how long it will take depends on you.

10. Python Interview Questions ๐Ÿ—ฃ๏ธ

You are now ready to answer crack Python interview at any level- beginner, intermediate, or advanced. You can also do this after any of the previous steps. Refer to these questions- these are questions of all difficulties- beginner, intermediate, and advanced. They also have some open-ended questions.

11. Python Job Trends ๐Ÿ“Š

Python is the second-most loved language and the most-wanted language according to the StackOverflow Developer Survey for 2019. It seems to have a good future with stable jobs. Also, the jobs pay well. Here are the profiles you can go for if you learn Python:

  • Software Engineer
  • Senior Software Engineer
  • DevOps Engineer
  • Data Scientist
  • Senior Data Scientist

And here are the salaries: ๐Ÿค‘

  • Software Engineer - $103,035 /year
  • Senior Software Engineer - $129,328 /year
  • DevOps Engineer - $115,666 /year
  • Data Scientist - $117,345 /year
  • Senior Data Scientist - $136,633 /year

Python is at #3 on the TIOBE Index for September 2019. Job boards like Naukri and Indeed post more than 16000 to 24000 jobs for Python. Right now, there is a high demand, but low supply. This is a great opportunity for you. There is a large number of jobs per Python programmer.

16. Companies Using Python ๐Ÿข

Many giant companies use Python for their products and services. Some of these are:

  • Google - Python as a major programming language
  • Facebook - For production engineering
  • NASA Workflow Automation Tool - Written in Python
  • Nokia - Platforms like S60
  • IBM - Factor tool control applications
  • Walt Disney Feature Animation - Scripting language for animation
  • Yahoo! Maps services - Written in Python
  • Disqus - Commenting forum built with Django
  • Dropbox stack - Written in Python
  • Quora - Social website written in Python
  • Instagram - Built with Django
  • YouTube - Scripted Python for website
  • Bit Torrent - Originally written in Python
  • Other companies like Uber, MIT, Hike, Pandora, Spotify, Udemy, Netflix, PayPal, Reddit, Pinterest, and Glassdoor use it too

17. Case Studies - Python ๐Ÿ“š๐Ÿ”

a. Python at Netflix

Netflix uses Python for data analysis and its backend services. It is how it recommends new titles. Netflix also uses Python to build custom extensions to the Jupyter server. This can be used to manage tasks like logging, archiving, publishing and cloning notebooks. Netflix uses the statistical and numerical libraries like numpy, scipy, tuptures, and pandas. It also uses Python for automation, data exploration, and visualization. It implements demand engineering, insight engineering, Open Connect Network, Information Security, an ML infrastructure, Notebooks, a Partner Ecosystem, and Animation and NVFX.

b. Spotify

Like Netflix, Spotify uses Python for data analysis and backend services. It uses ZeroMQ for backend communication- this is an open networking framework written in Python and C++. Python allows fast development. Also, Spotify uses it for data analytics to create suggestions and recommendations. It also uses Luigi for synchronization with Hadoop. This lets it create "Radio and Discovery".

c. Quora

Quora is a social networking platform with questions and answers. They considered many languages before choosing Python because it has no type checking, and is slow. They rejected C# because the Microsoft Language is proprietary. Java has strict syntax, so it was rejected. So, like Google, Quora chose Python for its ease of writing and readability. They solved the problem of type checking by writing unit tests. They also liked the frameworks for Python- Django and Pylons. It was also easier to club Python and JS for handling user interactions.

d. Facebook

Facebook extensively uses Python. The libraries and frameworks reduce the code-load and focus on improvements. Facebook used Python for multiple services in infrastructure management, and made it scale-efficient. It also published Py3 written projects, including Facebook Ads API and a Python async IRC bot framework.

e. Google

Google has been using Python since the beginning. They decided to implement Python for ease of maintenance and faster delivery than C++. They also recoded some Perl or Bash scripts into Python. Python is the official Google server-side language at Google. Peter Norvig, and American computer scientist, said "Python has been an important part of Google since the beginning and remains so as the system grows and evolves. Today, dozens of Google engineers use Python, and we're looking for more people with skills in this language."

About

This repository is created for beginners who want to get started with Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages