- Main
- Basic and necessary commands needed to execute a well-defined python code at the command line.
- Getting started with the language
- Function
- Data Structures
- Pandas
- NLTK
- Errors and Exceptions
- Python Snippets
if __name__ == '__main__': # If file is not imported, this will be executed
main()$ python3$ pip3 install <package-name>$ python3 <filename>.py$ time python3 <filename>.pyimport <filename>- Input
input("Input: ")- Output Python automatically points the cursor to a new line. We need not specify explicitly.
print("Output")In python, we need not specify the datatype of a variable. The interpreter interprets the value and assigns a suitabe datatype for that.
number = 0
org = "GitHub"In python, we do not write a block of code in a pair of paranthesis.
We write it after : followed by an indentation in the next line.
The conditional statements include if, if-else, nested if and so on...
x,y = 0,1
if x < y:
print("x is less than y")
else:
print("x is not less than y")Note that the colon (:) following is required.
Similarly, the nested if also works.
As other programming languages, we have
for loop
for i in range(5):
print(i)The range function starts off with 0 till the number(excluded).
while loop
i=0
while(i < 10):
print("{} is less than 10".format(i))
i += 1There are a few ways to format a string in Python.
- Using the
%operator Strings can be formatted using the % operator:
>>> foo = 'world'
>>> 'Hello %s' % foo
'Hello world'To subsitute multiple instances, wrap the right hand side in a Tuple:
>>> foo = 'James'
>>> bar = 'Nancy'
>>> 'Hi, my name is %s and this is %s' % (foo, bar)
'Hi, my name is James and this is Nancy'You can also do variable subsitutions with a dictionary:
>>> dict = { "name": "Mike", "country": "Canada" }
>>> 'I am %(name)s and I am from %(country)s' % dict
'I am Mike and I am from Canada'.format()
Introduced in Python 3, but is available in Python 2.7+
>>> 'Hello {}'.format('world')
'Hello world'Similar to the above, subsitutions can be referred by name:
>>> 'Hi {name}, your total is ${total}'.format(name='Bob', total=5.50)
'Hi Bob, your total is $5.5'- f-Strings
Available in Python 3.6+. Works similar to the above, but is more powerful as arbitrary Python expressions can be embedded:
>>> a = 5
>>> b = 10
>>> f'Five plus ten is {a + b} and not {2 * (a + b)}.'
'Five plus ten is 15 and not 30.'Function is a block of code which runs when it is called.
Functions are declared using the def keyword. Function name must be a valid identifier.
Function arguments can be literal values, variables (valid identifiers), and expressions.
def sum(a, b) :
return a + b
def subtract(a, b) :
return a - b
def getPerson(name, age) :
person = { "name": name, "age": age }
return personFunctions can be called by passing the arguments according to the declaration.
a = 20
b = 50
c = sum(a, b)
d = sum(b, 50)
e = subtract(b, a)
p = getPerson("Joe", 25)
# OUTPUT:
print( "Sum - {} plus {}: {}" . format( a, b, c ) ) # Sum - 20 plus 50: 70
print( "Sum - {} plus 50: {}" . format( b, d ) ) # Sum - 50 plus 50: 100
print( "Subtraction - {} minus {}: {}" . format( b, a, e ) ) # Subtraction - 50 minus 20: 30
print( "Person - {}" . format( p ) ) # Person - {'name': 'Joe', 'age': 75}All data in a Python is represented by objects. There’s nothing particularly special about functions. They’re also just objects.
def yell(text): # Define function yell
return text.upper() + '!'
>>> bark = yell # Declare an object "bark" that contains the function "yell"
>>> bark('woof') # You could now execute the "yell" function object by calling bark
'WOOF!'Functions can be defined inside other functions. These are often called nested functions or inner functions.
def speak(text): # Define function speak
def wisper(t): # Function wisper does not exist outside speak
return t.lower() + '...'
return wisper(text)
>>> speak('Hello, World')
'hello, world...'The lambda keyword in Python provides a shortcut for declaring small anonymous functions.
>>> add = lambda x, y: x + y
>>> add(5, 3)
8You could declare the same add function with the def keyword, but it would be slightly more verbose:
def add(x, y):
return x + y
>>> add(5, 3)
8# These are all inplace operations returns a None value
<list>.append(<ele>) # Add an element to the end of the list
<list>.sort() # Sorts the given list
<list>.pop([<ele>]) # Removes the last element if no argument else removes the element at the index given
<list>.clear() # Makes it an empty list
<list>.insert(<index>, <ele>) # Adds the element before the index
<list>.extend(<iterator>)
<list>.reverse() # Reverse a given list# These are not inplace operations and has a return value
<list>.copy() # Makes a shallow copy of the list
<list>.index(<ele>) # Returns the index of the given element
<list>.count(<ele>) # Returns the number of occurrences of the elementkey-value pairs.
<dict> = {'Google':100, 'Facebook':80, 'Apple':90}
<dict>['Amazon'] = 85 # Adding a key along with the value
# Accessing the dictionary
for key in <dict>:
print("{key} -> {x}".format(key=key, x=<dict>[key]))
<dict>.keys() # Print all the keys
<dict>.values() # Print all the values
len(<dict>) # Find the length of the dictionary
<dict>.pop(<key>) # Removes the item with the specified key name
<dict>.copy() # Make a copy of a dictionaryA dictionary can also contain many dictionaries, this is called nested dictionaries.
A tuple is a collection which is ordered, indexed and unchangeable. In Python tuples are written with round brackets.
this_tuple = ('books', 'pen', 'paper') # Defined a tuple
# Accessing Tuple Items
print(this_tuple[2]) # paperTuples are immutable, which means they cant to changed once they are created.
If a value inside tuple needs to be changed, the tuple must be converted to a list.
Newly created list can be converted back to tuple after updating changes.
desk_tuple = ("pen stand", "plant", "marker")
desk_list = list(desk_tuple)
desk_list[2] = "highlighter"
desk_tuple = tuple(desk_list)
print(desk_tuple[2]) # highlighterTo create a tuple with only one item, you have to add a comma after the item, otherwise Python will not recognize it as a tuple.
this_tuple = ("Python",)
print(type(this_tuple)) # tuple
# NOT a tuple
this_tuple = ("Python")
print(type(this_tuple)) # strTuples are unchangeable, so you cannot remove items from it, but you can delete the tuple completely:
this_tuple = ('books', 'pen', 'paper')
del this_tuple
print(this_tuple) # ERROR: this_tuple is not defined
## Third party libraries$ sudo pip3 install pandas # Installing pandas module in Ubuntuimport pandas as pd
<dataframe>.head([<n>]) # Display the first n rows of the Dataframe, default value is 5 rows
<dataframe>.tail([<n>]) # Display the last n rows of the Dataframe, default value is 5 rows
<dataframe>.info() # Gives some information like, row and column datatypes, non-null count, and memory usage
<dataframe>.describe() # Provides some descriptive statistics about the numerical rows in the dataframeIn Pandas, total of three data structures are used
- Series
- DataFrame
- Panel
#Series
sr = pd.Series([100, 200, 300, 400],
index=["red", "green", "yello", "black"])
print(sr)
print(sr.values)
print(sr.index)
#A series class has a structure that allows you to give values in one-dimensional arrays an index that corresponds to each value.#DataFrame
values = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
index = ['one', 'two', 'three']
columns = ['A', 'B', 'C']
df = pd.DataFrame(values, index=index, columns=columns)
print(df)
print(df.index)
print(df.columns)
print(df.values)
#DataFrame passes a two-dimensional list as a parameter. Compared to a series, a data frame is added up to columns, consisting of columns, indexes, and values.$ sudo pip3 install nltk # Installing nltk module in Ubuntuimport nltk
# Before trying any function download the word list
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')Program stops working on error Python raises exceptions when it encounter error.
To avoid this, try-catch blocks are used.
No syntax errors found, program starts execution.
Errors detected during execution are called exceptions.
Use try: except: finally: to catch and handle the exceptions.
Use try: except: finally: to avoid program termination on exceptions.
Use try: except: else: instead of try: except: finally: for alternate flows.
Multiple except can be use to catch the exceptions.
a = 10 * (1/0)
# Throws division by zero exception and terminate the program
# Traceback (most recent call last):
File "", line 1, in
a = 10 * (1/0)
# ZeroDivisionError: division by zero
# Updated Program - Valid - Try: Except: Finally
b = 10
try:
a = 10 * (1/b)
print( "a = {}" .format( a ) )
except:
print( "Caught divide by zero - while getting a" )
print( "Execute on error - b must be non-zero value" )
finally:
print( "Execute Always - normal and exceptional flow" )
# OUTPUT
a = 1.0
Execute Always - normal and exceptional flow
## Updated Program - Error - Try: Except: Finally
b = 0
try:
a = 10 * (1/b)
print( "a = {}" .format( a ) )
except:
print( "Caught divide by zero - while getting a" )
print( "Execute on error - b must be non-zero value" )
else:
print( "Alternate to exceptional flow" )
# Output
Caught divide by zero - while getting a
Execute on error - b must be non-zero value
Execute Always - normal and exceptional flowAn anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.
from collections import Counter
def anagram(first, second):
return Counter(first) == Counter(second)
anagram("abcd3", "3acdb") # TrueThis snippet can be used to check the memory usage of an object.
import sys
variable = 30
print(sys.getsizeof(variable)) # 24This snippet can be used to print a string n times without having to use loops to do it.
n = 2
s ="Programming"
print(s * n) # ProgrammingProgrammingThis method chunks a list into smaller lists of a specified size.
def chunk(list, size):
return [list[i:i+size] for i in range(0,len(list), size)]This method gets vowels (‘a’, ‘e’, ‘i’, ‘o’, ‘u’) found in a string.
def get_vowels(string):
return [each for each in string if each in 'aeiou']
get_vowels('foobar') # ['o', 'o', 'a']
get_vowels('gym') # []This method gets the length of last word in a given string.
def lengthOfLastWord(self, s: str) -> int:
if(s.split()):
lst=s.split()
last=lst[-1]
return len(last)
return 0This method returns a bool value specifying whether a string is palindromic or not.
def isPalindrome(self, s: str) -> bool:
s = [ x.lower() for x in s if x.isalnum() ]
return s == s[::-1]This method checks if a string is in lower case or not.
def toLowerCase(self, str):
"""
:type str: str
:rtype: str
"""
return str.lower()This method returns the count of negative numbers in a sorted matrix.
def countNegatives(self, grid: List[List[int]]) -> int:
count = 0
for num in grid:
for n in num:
if n < 0:
count += 1
return countThis method takes in the name of file and content then write the content into the file. If the file doesn't exist then it creates the file.
def write_to_file(filename, content):
try:
with open(filename, "w+") as f:
f.write(content)
print("Written to file successfully.")
except Exception as e:
print("Failed to write to file with error: ")
print(e)This method returns the median of the given list/array as an output.
import statistics
def median(arr):
print(statistics.median(arr))This function determines the given number is even or odd.
def find_Evenodd(num):
if(num%2==0):
print(num," Is an even")
else:
print(num," is an odd")This function returns "yes" if given string is a palindrome, else "no". Palindrome is a string whose reverse is the string itself.
def isPalindrome(s):
if (s == s[::-1]):
return "yes"
else:
return "no"- Introduction and Installation
- Why Python?
- Statements, Comments and Indentation
- Operators and If-elif-else
- The for loop
- Summary Interview questions
- The While Loop and more questions
- Exercises and coding challenges⚔️
- Unicode in Python
- Summary of the week and exercises.
- Lists in Python
- Multidimensional lists and Tuples
- Basic algorithms
- Stack implementation
- Basic Exception and error handling using try-except
- More about try-except
- Fractal lists and other questions
- Intro to DSA ^^
- Insertion sort
- Dictionaries in Python
- Practicing Dictionary exercises
- HashTables via Dictionaries
- Summary of the week and dictionary exercises.
- String Methods Part-1
- String Methods Part-2
- String Methods Part-3
- Summary of the basic course.