Python Basics

Nishant Bhushan
10 min readOct 27, 2022

--

I am assuming you already know what is Python. So let's start with why to learn Python.

Why Learn Python?

  • Python code is very readable and syntax is easy to learn.
  • Today Python is used for developing web applications, Backend APIs, data science, and Machine Learning development.
  • Python allows you to write programs in fewer lines of code.
  • The popularity of Python is growing day by day. Now it’s one of the most popular programming languages.

Keywords:

Keywords are the reserved words in Python. We cannot use a keyword as the variable name, function name, or any other identifier. They are used to define the syntax and structure of the Python language. In Python, keywords are case-sensitive.

import keyword
print(keyword.kwlist)

print("\nTotal no of keywords :",len(keyword.kwlist))
---------------------------------------------------------------['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

Total no of keywords : 33

Python Identifiers

The identifier is the name given to entities like classes, functions, variables, etc. in Python. It helps differentiate one entity from another.

Rules for writing identifiers

  1. Identifiers can be a combination of letters in lowercase (a to z) or uppercase (A to Z) or digits (0 to 9) or underscore (_). Names like myClass, var_1 and print_this_to_screen, all are valid example.
  2. An identifier cannot start with a digit. 1variable is invalid, but variable1 is perfectly fine.
  3. Keywords cannot be used as identifiers
# correct 
abc = 1
# wrong
global = 1
---------------------------------------------------------------File "<ipython-input-6-50a04a0f95cf>", line 2
global = 1
^
SyntaxError: invalid syntax

We cannot use special symbols like !, @, #, $, % etc. in our identifier.

a@ = 0---------------------------------------------------------------File "<ipython-input-7-4d4a0e714c73>", line 1
a@ = 0
^
SyntaxError: invalid syntax

Things to care about

  • Python is a case-sensitive language. This means Variable and variables are not the same. Always name identifiers that make sense.
  • While, c = 10 is valid. Writing count = 10 would make more sense and it would be easier to figure out what it does even when you look at your code after a long gap.
  • Multiple words can be separated using an underscore, this_is_a_long_variable.
  • We can also use a camel-case style of writing, i.e., capitalize every first letter of the word except the initial word without any spaces. For example: camelCaseExample

Python Statement

Instructions that a Python interpreter can execute are called statements. For example, a = 1 is an assignment statement. if statement, for statement, while statement etc. are other kinds of statements which will be discussed later.

Multi-line statement

In Python, end of a statement is marked by a newline character. But we can make a statement extend over multiple lines with the line continuation character ().

For example:

a = 1 + 2 + 3 + \
4 + 5 + 6 + \
7 + 8 + 9

print(a)
---------------------------------------------------------------45

This is explicit line continuation. In Python, line continuation is implied inside parentheses ( ), brackets [ ] and braces { }. For instance, we can implement the above multi-line statement as

a = (1 + 2 + 3 +
4 + 5 + 6 +
7 + 8 + 9)
print(a)---------------------------------------------------------------45

Here, the surrounding parentheses ( ) do the line continuation implicitly. Same is the case with [ ] and { }.

For example:

colors = ['red',
'blue',
'green']
print(colors)
---------------------------------------------------------------['red', 'blue', 'green']

We could also put multiple statements in a single line using semicolons, as follows

a = 1; b = 2; c = 3

print(a,b,c)
---------------------------------------------------------------1 2 3

Python Indentation

Most programming languages like C, C++, and Java use braces { } to define a block of code. Python uses indentation.

A code block (body of a function, loop, etc.) starts with indentation and ends with the first unindented line. The amount of indentation is up to you, but it must be consistent throughout that block.

Generally, four whitespaces are used for indentation and is preferred over tabs.

Here is an example.

for i in range(1,11):
print(i)
if i == 5:
break
---------------------------------------------------------------1
2
3
4
5

The enforcement of indentation in Python makes the code look neat and clean. This results into Python programs that look similar and consistent.

Indentation can be ignored in line continuation. But it’s a good idea to always indent. It makes the code more readable.

For example:

if True:
print('Hello')
a = 5
---------------------------------------------------------------Hello

and it can be written as below

if True: print('Hello'); a = 5
---------------------------------------------------------------
Hello

both are valid and do the same thing. But the former style is clearer. Incorrect indentation will result into IndentationError.

if True:
print('Hello')
a = 5
---------------------------------------------------------------File "<ipython-input-16-919a7537c474>", line 3
a = 5
^
IndentationError: unexpected indent

Python Comments

Comments are very important while writing a program. It describes what’s going on inside a program so that a person looking at the source code does not have a hard time figuring it out. You might forget the key details of the program you just wrote in a month’s time. So taking time to explain these concepts in form of comments is always fruitful.

In Python, we use the hash (#) symbol to start writing a comment.

It extends up to the newline character. Comments are for programmers for a better understanding of a program. Python Interpreter ignores the comment.

#This is a comment
#print out Hello
print('Hello')
---------------------------------------------------------------Hello

Multi-line comments

If we have comments that extend multiple lines, one way of doing it is to use hash (#) in the beginning of each line.

For example:

#This is a long comment
#and it extends
#to multiple lines

Another way of doing this is to use triple quotes, either ‘’’ or “””.

These triple quotes are generally used for multi-line strings. But they can be used as a multi-line comments as well. Unless they are not docstrings, they do not generate any extra code.

"""This is also a
perfect example of
multi-line comments"""

Docstring in Python

Docstring is short for documentation string.

It is a string that occurs as the first statement in a module, function, class, or method definition. We must write what a function/class does in the docstring.

Triple quotes are used while writing docstrings.

For example:

def double(num):
"""Function to double the value"""
return 2*num
print(double.__doc__)---------------------------------------------------------------Function to double the value

Docstring is available to us as the attribute doc of the function. Issue the following code in shell once you run the above program.

Variable

In most programming languages, a variable is a named location used to store data in the memory. Each variable must have a unique name called an identifier. It is helpful to think of variables as containers that hold data that can be changed later throughout programming.

Non technically, you can suppose a variable as a bag to store books in it and those books can be replaced at any time.

Note: In Python, we don’t assign values to the variables, whereas Python gives the reference of the object (value) to the variable.

Declaring Variables in Python

In Python, variables do not need a declaration to reserve memory space. The “variable declaration” or “variable initialization” happens automatically when we assign a value to a variable.

Assigning value to a Variable in Python

You can use the assignment operator = to assign the value to a variable.

website = "Apple.com"

print(website)
---------------------------------------------------------------Apple.com

In the above program, we assigned the value Apple.com to the variable website. Then we print the value assigned to the website i.e Apple.com.

Note :

1. Python is a type-inferred language, it can automatically infer (know) Apple.com is a String and declare the website as a String.

2. Type inference refers to the automatic detection of the data type of an expression in a programming language.

Changing the value of a variable

website = "python.org"

# assigning a new variable to website
website = "example.com"

print(website)
---------------------------------------------------------------example.com

In the above program, we assigned new value example.com to website. Now, the new value example.com will replace the old value python.org. For the confirmation, we print website and it will display new value example.com.

Assigning multiple values to multiple variables

a, b, c = 5, 3.2, "Hello"print (a)
print (b)
print (c)
---------------------------------------------------------------5
3.2
Hello

if we want to assign the same value to multiple variables at once, we can do this as

a = b= c = "here"

print (a)
print (b)
print (c)
---------------------------------------------------------------here
here
here

The second program assigns the same string to all the three variables x, y and z.

Constants

A constant is a type of variable whose value cannot be changed. It is helpful to think of constants as containers that hold information that cannot be changed later.

Non technically, you can think of constant as a bag to store some books and those books cannot be replaced once placed inside the bag.

Assigning value to a constant in Python

In Python, constants are usually declared and assigned to a module. Here, the module means a new file containing variables, functions, etc which is imported to the main file. Inside the module, constants are written in all capital letters and underscores separate the words.

Declaring and assigning value to a constant

## Create a constant.py
PI = 3.14
GRAVITY = 9.8
## Create a main.py
import constant
print(constant.PI)
print(constant.GRAVITY)

In the above program, we create a constant.py module file. Then, we assign the constant value to PI and GRAVITY. After that, we create a main.py file and import the constant module. Finally, we print the constant value.

Note: In reality, we don’t use constants in Python. The globals or constants module is used throughout the Python programs.

Rules and Naming convention for variables and constants

  1. Create a name that makes sense. Suppose, the vowel makes more sense than v.
  2. Use camelCase notation to declare a variable. It starts with a lowercase letter. For example:
  3. Use capital letters where possible to declare a constant For example PI G MASS TEMP
  4. Never use special symbols like !, @, #, $,%, etc.
  5. Don't start the name with a digit.
  6. Constants are put into Python modules and are meant not to be changed.

Note: Constant and variable names should have a combination of letters in lowercase (a to z) or uppercase (A to Z) or digits (0 to 9) or underscore (_).

For example snake_case, MACRO_CASE, camelCase, CapWords

Literals

Literal is raw data given in a variable or constant. In Python, there are various types of literals they are as follows:

Numeric Literals

Numeric Literals are immutable (unchangeable). Numeric literals can belong to 3 different numerical types Integer, Float, and Complex.

How to use Numeric literals in Python?

a = 0b1010 #Binary Literals
b = 100 #Decimal Literal
c = 0o310 #Octal Literal
d = 0x12c #Hexadecimal Literal
#Float Literal
float_1 = 10.5
float_2 = 1.5e2
#Complex Literal
x = 3.14j
print(a, b, c, d)
print(float_1, float_2)
print(x, x.imag, x.real)
---------------------------------------------------------------10 100 200 300
10.5 150.0
3.14j 3.14 0.0

In the above program

  • We assigned integer literals to different variables. Here, a is a binary literal, b is a decimal literal, c is an octal literal and d is a hexadecimal literal.
  • When we print the variables, all the literals are converted into decimal values.
  • 10.5 and 1.5e2 are floating point literals. 1.5e2 is expressed with exponential and is equivalent to 1.5 * 102.
  • We assigned a complex literal i.e 3.14j in variable x. Then we use imaginary literal (x.imag) and real literal (x.real) to create imaginary and real parts of complex numbers.

String literals

A string literal is a sequence of characters surrounded by quotes. We can use both single, double, or triple quotes for a string. And, a character literal is a single character surrounded by single or double quotes.

How to use string literals in Python?

strings = "This is Python"
char = "C"
multiline_str = """This is a multiline string with more than one line code."""
unicode = u"\u00dcnic\u00f6de"
raw_str = r"raw \n string"
print(strings)
print(char)
print(multiline_str)
print(unicode)
print(raw_str)
---------------------------------------------------------------This is Python
C
This is a multiline string with more than one line code.
Ünicöde
raw \n string

In the above program, This is Python is a string literal and C is a character literal. The value with triple-quote “”” assigned in the multiline_str is multi-line string literal. The u”\u00dcnic\u00f6de” is a unicode literal which supports characters other than English and r”raw \n string” is a raw string literal.

Boolean literals

A Boolean literal can have any of two values: True or False.

How to use boolean literals in Python?

x = (1 == True)
y = (1 == False)
a = True + 4
b = False + 10

print("x is", x)
print("y is", y)
print("a:", a)
print("b:", b)
---------------------------------------------------------------x is True
y is False
a: 5
b: 10

In the above program, we use boolean literal True and False. In Python, True represents the value as 1 and False as 0. The value of x is True because 1 is equal to True. And, the value of y is False because 1 is not equal to False.

Similarly, we can use the True and False in numeric expressions as the value. The value of a is 5 because we add True which has value of 1 with 4. Similarly, b is 10 because we add the False having value of 0 with 10.

Special literals

Python contains one special literal i.e. None. We use it to specify to that field that is not created.

How to use special literals in Python?

drink = "Available"
food = None
def menu(x):
if x == drink:
print(drink)
else:
print(food)
menu(drink)
menu(food)
---------------------------------------------------------------Available
None

In the above program, we define a menu function. Inside menu, when we set parameter as drink then, it displays Available. And, when the parameter is food, it displays None.

Literal Collections

There are four different literal collections List literals, Tuple literals, Dict literals, and Set literals.

How to use literals collections in Python?

fruits = ["apple", "mango", "orange"] #list
numbers = (1, 2, 3) #tuple
alphabets = {'a':'apple', 'b':'ball', 'c':'cat'} #dictionary
vowels = {'a', 'e', 'i' , 'o', 'u'} #set
print(fruits)
print(numbers)
print(alphabets)
print(vowels)
---------------------------------------------------------------['apple', 'mango', 'orange']
(1, 2, 3)
{'a': 'apple', 'b': 'ball', 'c': 'cat'}
{'e', 'a', 'o', 'u', 'i'}

In the above program, we created a list of fruits, tuple of numbers, dictionary dict having values with keys desginated to each value and set of vowels.

Storage Locations

x = 3
print(id(x)) # print address of the variable x
y = 3
print(id(y)) # print address of the variable y
---------------------------------------------------------------1890610304
1890610304

In above program we can see that x and y has same memory locations

y = 2
print(id(y)) # print address of the variable y
---------------------------------------------------------------1890610272

Data types in Python

Every value in Python has a datatype. Since everything is an object in Python programming, data types are actually classes and variables are instances (objects) of these classes.

I have written another blog where I explained -> Python Lists, Tuples, Sets, and Dictionary.

If you have any questions, please feel free to ask.

Thanks for reading…

--

--