13 Essential Python Knowledge to Bookmark

Python has ranked first multiple times in the PYPL index of programming language popularity.

Due to its code readability and simpler syntax, it is considered one of the easiest languages to learn.

The richness of various AI and machine learning libraries such as NumPy, Pandas, and TensorFlow is one of the core demands of Python.

If you are a data scientist or a beginner in AI/machine learning, then Python is the right choice to start your journey.

This time, Xiao F will take everyone to explore some basic knowledge of Python programming, which, although simple, is very useful.

  • Table of Contents

    • Data Types

    • Variables

    • Lists

    • Sets

    • Dictionaries

    • Comments

    • Basic Functions

    • Conditional Statements

    • Loops

    • Functions

    • Exception Handling

    • String Operations

    • Regular Expressions

▍1. Data Types

Data types are specifications of data that can be stored in variables. The interpreter allocates memory for variables based on their types.

Here are various data types in Python.

13 Essential Python Knowledge to Bookmark

▍2. Variables

Variables are containers for storing data values.

Variables can use short names (like x and y) or more descriptive names (age, carname, total_volume).

Python variable naming rules:

  • Variable names must start with a letter or underscore character

  • Variable names cannot start with a number

  • Variable names can only contain alphanumeric characters and underscores (A-z, 0-9, and _)

  • Variable names are case-sensitive (age, Age, and AGE are three different variables)

var1 = 'Hello World'
var2 = 16
_unuseful = 'Single use variables'

The output is as follows.

13 Essential Python Knowledge to Bookmark

▍3. Lists

Lists are ordered and mutable collections that allow duplicate members.

They may not be homogeneous, and we can create a list that contains different data types (such as integers, strings, and objects).

>>> companies = ["apple","google","tcs","accenture"]
>>> print(companies)
['apple', 'google', 'tcs', 'accenture']
>>> companies.append("infosys")
>>> print(companies)
['apple', 'google', 'tcs', 'accenture', 'infosys']
>>> print(len(companies))
5
>>> print(companies[2])
tcs
>>> print(companies[-2])
accenture
>>> print(companies[1:])
['google', 'tcs', 'accenture', 'infosys']
>>> print(companies[:1])
['apple']
>>> print(companies[1:3])  
['google', 'tcs']
>>> companies.remove("infosys")
>>> print(companies)
["apple","google","tcs","accenture"]
>>> companies.pop()
>>> print(companies)
["apple","google","tcs"]

▍4. Sets

Sets are unordered and unindexed collections with no duplicate members.

They are very useful for removing duplicate entries from a list. They also support various mathematical operations such as union, intersection, and difference.

>>> set1 = {1,2,3,7,8,9,3,8,1}
>>> print(set1)
{1, 2, 3, 7, 8, 9}
>>> set1.add(5)
>>> set1.remove(9)
>>> print(set1)
{1, 2, 3, 5, 7, 8}
>>> set2 = {1,2,6,4,2} 
>>> print(set2)
{1, 2, 4, 6}
>>> print(set1.union(set2))        # set1 | set2
{1, 2, 3, 4, 5, 6, 7, 8}
>>> print(set1.intersection(set2)) # set1 & set2
{1, 2}
>>> print(set1.difference(set2))   # set1 - set2
{8, 3, 5, 7}
>>> print(set2.difference(set1))   # set2 - set1
{4, 6}

▍5. Dictionaries

Dictionaries are mutable unordered collections of key-value pairs.

Unlike other data types, they store data in the format of {key:value} pairs, rather than storing individual data. This feature makes it the best data structure for mapping JSON responses.

>>> # example 1
>>> user = { 'username': 'Fan', 'age': 20, 'mail_id': '[email protected]', 'phone': '18650886088' }
>>> print(user)
{'mail_id': '[email protected]', 'age': 20, 'username': 'Fan', 'phone': '18650886088'}
>>> print(user['age'])
20
>>> for key in user.keys():
>>>     print(key)
mail_id
age
username
phone
>>> for value in user.values():
>>>  print(value)
[email protected]
20
Fan
18650886088
>>> for item in user.items():
>>>  print(item)
('mail_id', '[email protected]')
('age', 20)
('username', 'Fan')
('phone', '18650886088')
>>> # example 2
>>> user = {
>>>     'username': "Fan",
>>>     'social_media': [
>>>         {
>>>             'name': "Linkedin",
>>>             'url': "https://www.linkedin.com/in/codemaker2022"
>>>         },
>>>         {
>>>             'name': "Github",
>>>             'url': "https://github.com/codemaker2022"
>>>         },
>>>         {
>>>             'name': "QQ",
>>>             'url': "https://codemaker2022.qq.com"
>>>         }
>>>     ],
>>>     'contact': [
>>>         {
>>>             'mail': [
>>>                 "[email protected]",
>>>                 "[email protected]"
>>>             ],
>>>             'phone': "18650886088"
>>>         }
>>>     ]
>>> }
>>> print(user)
{'username': 'Fan', 'social_media': [{'url': 'https://www.linkedin.com/in/codemaker2022', 'name': 'Linkedin'}, {'url': 'https://github.com/codemaker2022', 'name': 'Github'}, {'url': 'https://codemaker2022.qq.com', 'name': 'QQ'}], 'contact': [{'phone': '18650886088', 'mail': ['[email protected]', '[email protected]']}]} 
>>> print(user['social_media'][0]['url'])
https://www.linkedin.com/in/codemaker2022
>>> print(user['contact']) 
[{'phone': '18650886088', 'mail': ['[email protected]', '[email protected]']}]

▍6. Comments

Single-line comments start with a hash character (#) followed by a message and end at the end of the line.

# Define user age
age = 27
dob = '16/12/1994' # Define user birthday

Multi-line comments are enclosed in triple quotes (“””), allowing you to place messages over multiple lines.

"""
Python Tips
This is a multi line comment
"""

▍7. Basic Functions

The print() function prints the provided message to the console. You can also provide file or buffer input as parameters to be printed on the screen.

print(object(s), sep=separator, end=end, file=file, flush=flush)

print("Hello World")               # prints Hello World 
print("Hello", "World")            # prints Hello World?
x = ("AA", "BB", "CC")
print(x)                           # prints ('AA', 'BB', 'CC')
print("Hello", "World", sep="---") # prints Hello---World

input() function is used to collect user input from the console.

It is important to note that input() will convert anything you input into a string.

Therefore, if you provide your age as an integer value, the input() method will return it as a string, and you will need to convert it back to an integer manually.

>>> name = input("Enter your name: ")
Enter your name: Codemaker
>>> print("Hello", name)
Hello Codemaker

len() can be used to check the length of an object. If you input a string, you can get the character count in the specified string.

>>> str1 = "Hello World"
>>> print("The length of the string is ", len(str1))
The length of the string is 11

str() is used to convert other data types into string values.

>>> str(123)
123
>>> str(3.14)
3.14

int() is used to convert strings into integers.

>>> int("123")
123
>>> int(3.14)
3

▍8. Conditional Statements

Conditional statements are blocks of code that change the program flow based on specific conditions. These statements only execute when certain conditions are met.

In Python, we use if, if-else, and loops (for, while) as conditional statements to change the program flow based on certain conditions.

If-else statements.

>>> num = 5
>>> if (num > 0):
>>>    print("Positive integer")
>>> else:
>>>    print("Negative integer")

elif statements.

>>> name = 'admin'
>>> if name == 'User1':
>>>     print('Only read access')
>>> elif name == 'admin':
>>>     print('Having read and write access')
>>> else:
>>>     print('Invalid user')
Having read and write access

▍9. Loops

Loops are conditional statements used to repeat certain statements (in their body) until a certain condition is met.

In Python, we typically use for and while loops.

For loops.

>>> # loop through a list
>>> companies = ["apple", "google", "tcs"]
>>> for x in companies:
>>>     print(x)
apple
google
tcs
>>> # loop through string
>>> for x in "TCS":
>>>  print(x)
T
C
S

The range() function returns a sequence of numbers, which can be used to control for loops.

It essentially requires three parameters, of which the second and third are optional. The parameters are start value, stop value, and step value. The step value is the increment value of the loop variable for each iteration.

>>> # loop with range() function
>>> for x in range(5):
>>>  print(x)
0
1
2
3
4
>>> for x in range(2, 5):
>>>  print(x)
2
3
4
>>> for x in range(2, 10, 3):
>>>  print(x)
2
5
8

We can also use the else keyword to execute some statements at the end of the loop.

Provide an else statement at the end of the loop along with the statements to be executed when the loop ends.

>>> for x in range(5):
>>>  print(x)
>>> else:
>>>  print("finished")
0
1
2
3
4
finished

While loops.

>>> count = 0
>>> while (count < 5):
>>>  print(count)
>>>  count = count + 1
0
1
2
3
4

We can use else at the end of a while loop, similar to a for loop, to execute some statements when the condition is false.

>>> count = 0
>>> while (count < 5):
>>>  print(count)
>>>  count = count + 1
>>> else:
>>>  print("Count is greater than 4")
0
1
2
3
4
Count is greater than 4

▍10. Functions

Functions are reusable blocks of code used to perform tasks. They are very useful for modularizing code and making it reusable.

>>> # This prints a passed string into this function
>>> def display(str):
>>>  print(str)
>>>  return
>>> display("Hello World")
Hello World

▍11. Exception Handling

Even if statements are syntactically correct, errors may occur during execution. These types of errors are called exceptions. We can use exception handling mechanisms to avoid such issues.

In Python, we implement exception handling in the code using try, except, and finally keywords.

>>> def divider(num1, num2):
>>>     try:
>>>         return num1 / num2
>>>     except ZeroDivisionError as e:
>>>         print('Error: Invalid argument: {}'.format(e))
>>>     finally:
>>>         print("finished")
>>> 
>>> print(divider(2,1))
>>> print(divider(2,0))
finished
2.0
Error: Invalid argument: division by zero
finished
None

▍12. String Operations

Strings are collections of characters enclosed in single or double quotes (‘, “).

We can perform various operations on strings using built-in methods, such as concatenation, slicing, trimming, reversing, case changing, and formatting, such as split(), lower(), upper(), endswith(), join(), and ljust(), rjust(), format().

>>> msg = 'Hello World'
>>> print(msg)
Hello World
>>> print(msg[1])
e
>>> print(msg[-1])
d
>>> print(msg[:1])
H
>>> print(msg[1:])
ello World
>>> print(msg[:-1])
Hello Worl
>>> print(msg[::-1])
dlroW olleH
>>> print(msg[1:5])
ello
>>> print(msg.upper())
HELLO WORLD
>>> print(msg.lower())
hello world
>>> print(msg.startswith('Hello'))
True
>>> print(msg.endswith('World'))
True
>>> print(', '.join(['Hello', 'World', '2022']))
Hello, World, 2022
>>> print(' '.join(['Hello', 'World', '2022']))
Hello World 2022
>>> print("Hello World 2022".split())
['Hello', 'World', '2022']
>>> print("Hello World 2022".rjust(25, '-'))
---------Hello World 2022
>>> print("Hello World 2022".ljust(25, '*'))
Hello World 2022*********
>>> print("Hello World 2022".center(25, '#'))
#####Hello World 2022####
>>> name = "Codemaker"
>>> print("Hello %s" % name)
Hello Codemaker
>>> print("Hello {}".format(name))
Hello Codemaker
>>> print("Hello {0}{1}".format(name, "2022"))
Hello Codemaker2022

▍13. Regular Expressions

  • Import the regex module, import re.

  • Use re.compile() to create a Regex object.

  • Pass the search string to the search() method.

  • Call the group() method to return the matched text.

>>> import re
>>> phone_num_regex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
>>> mob = phone_num_regex.search('My number is 996-190-7453.')
>>> print('Phone number found: {}'.format(mob.group()))
Phone number found: 996-190-7453
>>> phone_num_regex = re.compile(r'^\d+$')
>>> is_valid = phone_num_regex.search('+919961907453.') is None
>>> print(is_valid)
True
>>> at_regex = re.compile(r'.at')
>>> strs = at_regex.findall('The cat in the hat sat on the mat.')
>>> print(strs)
['cat', 'hat', 'sat', 'mat']

Alright, this concludes this session. Interested friends can practice and learn on their own.

Recommended Reading
1. 100 Cool Pandas Operations
2. Data Cleaning with Pandas
3. Original Series on Machine Learning

Leave a Comment