Loops
Loops: Loops allow us to execute a block of code several times.
While Loop: Allows us to execute a block of code several times as long as the condition is True.
For Loop: for statement iterates over each item of a sequence.
Syntax:
Range: Generates a sequence of integers starting from 0. Stops before n (n is not included).
Syntax: range(n)
Range with Start and End: Generates a sequence of numbers starting from the start. Stops before the end (the end is not included).
Syntax: range(start, end)
Lists - Working with Lists
List: List is the most versatile python data structure. Holds an ordered sequence of items.
Accessing List Items: To access elements of a list, we use Indexing.
Iterating Over a List:
List Concatenation: Similar to strings, + operator concatenates lists.
List Slicing: Obtaining a part of a list is called List Slicing.
Extended Slicing: Similar to string extended slicing, we can extract alternate items using the step.
Reversing a List: -1 for step will reverse the order of items in the list.
Slicing With Negative Index: You can also specify negative indices while slicing a List.
Negative Step Size: Negative Step determines the decrement between each index for slicing. The start index should be greater than the end index in this case
Membership check-in lists:
| Name | Usage | 
|---|---|
| in | By using the inoperator, one can determine if a value is present in a sequence or not. | 
| not in | By using the, not inoperator, one can determine if a value is not present in a sequence or not. | 
Nested Lists: A list as an item of another list.
Accessing Nested List:
Accessing Items of Nested List:
List Methods
| Name | Syntax | Usage | |
|---|---|---|---|
| append() | list.append(value) | Adds an element to the end of the list. | |
| extend() | list_a.extend(list_b) | Adds all the elements of a sequence to the end of the list. | |
| insert() | list.insert(index,value) | Element is inserted to the list at specified index. | |
| pop() | list.pop() | Removes last element. | |
| remove() | list.remove(value) | Removes the first matching element from the list. | |
| clear() | list.clear() | Removes all the items from the list. | |
| index() | list.index(value) | Returns the index at the first occurrence of the specified value. | |
| count() | list.count(value) | Returns the number of elements with the specified value. | |
| sort() | list.sort() | Sorts the list. | |
| copy() | list.copy() | Returns a new list. It doesn't modify the original list. | 
Functions
Functions: Block of reusable code to perform a specific action.
Defining a Function: Function is uniquely identified by the function_name.
Calling a Function: The functional block of code is executed only when the function is called.
Function With Arguments: We can pass values to a function using an Argument.
Returning a Value: To return a value from the function use return keyword. Exits from the function when return statement is executed.
Function Arguments: A function can have more than one argument.
Keyword Arguments: Passing values by their names.
Positional Arguments: Values can be passed without using argument names. These values get assigned according to their position. Order of the arguments matters here.
Default Values:
Arbitrary Function Arguments: We can define a function to receive any number of arguments.
Variable Length Arguments: Variable length arguments are packed as tuple.
Unpacking as Arguments: If we already have the data required to pass to a function as a sequence, we can unpack it with * while passing.
Multiple Keyword Arguments: We can define a function to receive any number of keyword arguments. Variable length kwargs are packed as dictionary.
Function Call Stack: Stack is a data structure that stores items in an Last-In/First-Out manner. Function Call Stack keeps track of function calls in progress.
Recursion: A function calling itself is called a Recursion.
Passing Immutable Objects:
- Even though variable names are same, they are referring to two different objects.
- Changing the value of the variable inside the function will not affect the variable outside.
Passing Mutable Objects:
- The same object in the memory is referred by both list_a and list_x
- Default args are evaluated only once when the function is defined, not each time the function is called.
Nested Loops
Nested Loops:  An inner loop within the repeating block of an outer loop is called a Nested Loop. The Inner Loop will be executed one time for each iteration of the Outer Loop.
Syntax:
Syntax of while in for loop:
Syntax of for in while loop:
Loop Control Statements:
| Name | Usage | 
|---|---|
| Break | breakstatement makes the program exit a loop early. | 
| Continue | continueis used to skip the remaining statements in the current iteration when a condition is satisfied. | 
| Pass | passstatement is used as a syntactic placeholder. When it is executed, nothing happens. | 
| Break (In Nested Loop) | breakin the inner loop stops the execution of the inner loop. | 
%20(80%20%C3%97%2080%20px).png)
.jpg)