Python Loops & String

 Python Loops

The flow of the programs written in any programming language is sequential by default. Sometimes we may need to alter the flow of the program. The execution of a specific code may need to be repeated several numbers of times.
For this purpose, The programming languages provide various types of loops which are capable of repeating some specific code several numbers of times. Consider the following diagram to understand the working of a loop statement.
Python Loops

Why we use loops in python?

The looping simplifies the complex problems into the easy ones. It enables us to alter the flow of the program so that instead of writing the same code again and again, we can repeat the same code for a finite number of times. For example, if we need to print the first 10 natural numbers then, instead of using the print statement 10 times, we can print inside a loop which runs up to 10 iterations.

Advantages of loops

There are the following advantages of loops in Python.
  1. It provides code re-usability.
  2. Using loops, we do not need to write the same code again and again.
  3. Using loops, we can traverse over the elements of data structures (array or linked lists).
There are the following loop statements in Python.
Loop StatementDescription
for loop
The for loop is used in the case where we need to execute some part of the code until the given condition is satisfied. The for loop is also called as a per-tested loop. It is better to use for loop if the number of iteration is known in advance.
while loop
The while loop is to be used in the scenario where we don't know the number of iterations in advance. The block of statements is executed in the while loop until the condition specified in the while loop is satisfied. It is also called a pre-tested loop.
do-while loop
The do-while loop continues until a given condition satisfies. It is also called post tested loop. It is used when it is necessary to execute the loop at least once (mostly menu driven programs).

for loop

The for loop in Python is used to iterate the statements or a part of the program several times. It is frequently used to traverse the data structures like list, tuple, or dictionary.
The syntax of for loop in python is given below.
  1. for iterating_var in sequence:  
  2.     statement(s)  

Example

  1. i=1  
  2. n=int(input("Enter the number up to which you want to print the natural numbers?"))  
  3. for i in range(0,10):  
  4.     print(i,end = ' ')  
Output:

0 1 2 3 4 5 6 7 8 9

Nested for loop in python 

Python allows us to nest any number of for loops inside a for loop. The inner loop is executed n number of times for every iteration of the outer loop. The syntax of the nested for loop in python is given below.
  1. for iterating_var1 in sequence:  
  2.     for iterating_var2 in sequence:  
  3.         #block of statements   
  4. #Other statements  
Example 1 
  1. n = int(input("Enter the number of rows you want to print?"))  
  2. i,j=0,0  
  3. for i in range(0,n):  
  4.     print()  
  5.     for j in range(0,i+1):  
  6.         print("*",end="")  
Output:
Enter the number of rows you want to print?5
*
**
***
****
*****

Python while loop

The while loop is also known as a pre-tested loop. In general, a while loop allows a part of the code to be executed as long as the given condition is true.
It can be viewed as a repeating if statement. The while loop is mostly used in the case where the number of iterations is not known in advance.
The syntax is given below.
  1. while expression:  
  2.     statements  
Here, the statements can be a single statement or the group of statements. The expression should be any valid python expression resulting into true or false. The true is any non-zero value.

Example 1

  1. i=1;  
  2. while i<=10:  
  3.     print(i);  
  4.     i=i+1;  
Output:
1
2
3
4
5
6
7
8
9
10

Infinite while loop

If the condition given in the while loop never becomes false then the while loop will never terminate and result into the infinite while loop.
Any non-zero value in the while loop indicates an always-true condition whereas 0 indicates the always-false condition. This type of approach is useful if we want our program to run continuously in the loop without any disturbance.

Example 1

  1. while (1):  
  2.     print("Hi! we are inside the infinite while loop");  
Output:

Hi! we are inside the infinite while loop (infinite times)


Python String

Till now, we have discussed numbers as the standard data types in python. In this section of the tutorial, we will discuss the most popular data type in python i.e., string.
In python, strings can be created by enclosing the character or the sequence of characters in the quotes. Python allows us to use single quotes, double quotes, or triple quotes to create the string.
Consider the following example in python to create a string.

  1. str = "Hi Python !"  

Here, if we check the type of the variable str using a python script

  1. print(type(str)), then it will print string (str).  

In python, strings are treated as the sequence of strings which means that python doesn't support the character data type instead a single character written as 'p' is treated as the string of length 1.

Strings indexing and splitting

Like other languages, the indexing of the python strings starts from 0. For example, The string "HELLO" is indexed as given in the below figure.
Python String
As shown in python, the slice operator [] is used to access the individual characters of the string. However, we can use the : (colon) operator in python to access the substring. Consider the following example.
Python String
Here, we must notice that the upper range given in the slice operator is always exclusive i.e., if str = 'python' is given, then str[1:3] will always include str[1] = 'p', str[2] = 'y', str[3] = 't' and nothing else.

Reassigning strings

Updating the content of the strings is as easy as assigning it to a new string. The string object doesn't support item assignment i.e., A string can only be replaced with a new string since its content can not be partially replaced. Strings are immutable in python.
Consider the following example.

Example 1

  1. str = "HELLO"  
  2. str[0] = "h"  
  3. print(str)  
Output:
Traceback (most recent call last):
  File "12.py", line 2, in <module>
    str[0] = "h";
TypeError: 'str' object does not support item assignment
However, in example 1, the string str can be completely assigned to a new content as specified in the following example.

Example 2

  1. str = "HELLO"  
  2. print(str)  
  3. str = "hello"  
  4. print(str)  
Output:
HELLO
hello  

String Operators

OperatorDescription
+It is known as concatenation operator used to join the strings given either side of the operator.
*It is known as repetition operator. It concatenates the multiple copies of the same string.
[]It is known as slice operator. It is used to access the sub-strings of a particular string.
[:]It is known as range slice operator. It is used to access the characters from the specified range.
inIt is known as membership operator. It returns if a particular sub-string is present in the specified string.
not inIt is also a membership operator and does the exact reverse of in. It returns true if a particular substring is not present in the specified string.
r/RIt is used to specify the raw string. Raw strings are used in the cases where we need to print the actual meaning of escape characters such as "C://python". To define any string as a raw string, the character r or R is followed by the string.
%It is used to perform string formatting. It makes use of the format specifiers used in C programming like %d or %f to map their values in python. We will discuss how formatting is done in python.

Example

Consider the following example to understand the real use of Python operators.

  1. str = "Hello"   
  2. str1 = " world"  
  3. print(str*3# prints HelloHelloHello  
  4. print(str+str1)# prints Hello world   
  5. print(str[4]) # prints o              
  6. print(str[2:4]); # prints ll                  
  7. print('w' in str) # prints false as w is not present in str  
  8. print('wo' not in str1) # prints false as wo is present in str1.   
  9. print(r'C://python37'# prints C://python37 as it is written  
  10. print("The string str : %s"%(str)) # prints The string str : Hello   

Built-in String functions

Python provides various in-built functions that are used for string handling. Many String fun

MethodDescription
capitalize()It capitalizes the first character of the String. This function is deprecated in python3
casefold()It returns a version of s suitable for case-less comparisons.
center(width ,fillchar)It returns a space padded string with the original string centred with equal number of left and right spaces.
count(string,begin,end)It counts the number of occurrences of a substring in a String between begin and end index.
decode(encoding = 'UTF8', errors = 'strict')Decodes the string using codec registered for encoding.
encode()Encode S using the codec registered for encoding. Default encoding is 'utf-8'.
endswith(suffix ,begin=0,end=len(string))It returns a Boolean value if the string terminates with given suffix between begin and end.
expandtabs(tabsize = 8)It defines tabs in string to multiple spaces. The default space value is 8.
find(substring ,beginIndex, endIndex)It returns the index value of the string where substring is found between begin index and end index.
format(value)It returns a formatted version of S, using the passed value.
index(subsring, beginIndex, endIndex)It throws an exception if string is not found. It works same as find() method.
isalnum()It returns true if the characters in the string are alphanumeric i.e., alphabets or numbers and there is at least 1 character. Otherwise, it returns false.
isalpha()It returns true if all the characters are alphabets and there is at least one character, otherwise False.
isdecimal()It returns true if all the characters of the string are decimals.
isdigit()It returns true if all the characters are digits and there is at least one character, otherwise False.
isidentifier()It returns true if the string is the valid identifier.
islower()It returns true if the characters of a string are in lower case, otherwise false.
isnumeric()It returns true if the string contains only numeric characters.
isprintable()It returns true if all the characters of s are printable or s is empty, false otherwise.
isupper()It returns false if characters of a string are in Upper case, otherwise False.
isspace()It returns true if the characters of a string are white-space, otherwise false.
istitle()It returns true if the string is titled properly and false otherwise. A title string is the one in which the first character is upper-case whereas the other characters are lower-case.
isupper()It returns true if all the characters of the string(if exists) is true otherwise it returns false.
join(seq)It merges the strings representation of the given sequence.
len(string)It returns the length of a string.
ljust(width[,fillchar])It returns the space padded strings with the original string left justified to the given width.
lower()It converts all the characters of a string to Lower case.
lstrip()It removes all leading whitespaces of a string and can also be used to remove particular character from leading.
partition()It searches for the separator sep in S, and returns the part before it, the separator itself, and the part after it. If the separator is not found, return S and two empty strings.
maketrans()It returns a translation table to be used in translate function.
replace(old,new[,count])It replaces the old sequence of characters with the new sequence. The max characters are replaced if max is given.
rfind(str,beg=0,end=len(str))It is similar to find but it traverses the string in backward direction.
rindex(str,beg=0,end=len(str))It is same as index but it traverses the string in backward direction.
rjust(width,[,fillchar])Returns a space padded string having original string right justified to the number of characters specified.
rstrip()It removes all trailing whitespace of a string and can also be used to remove particular character from trailing.
rsplit(sep=None, maxsplit = -1)It is same as split() but it processes the string from the backward direction. It returns the list of words in the string. If Separator is not specified then the string splits according to the white-space.
split(str,num=string.count(str))Splits the string according to the delimiter str. The string splits according to the space if the delimiter is not provided. It returns the list of substring concatenated with the delimiter.
splitlines(num=string.count('\n'))It returns the list of strings at each line with newline removed.
startswith(str,beg=0,end=len(str))It returns a Boolean value if the string starts with given str between begin and end.
strip([chars])It is used to perform lstrip() and rstrip() on the string.
swapcase()It inverts case of all characters in a string.
title()It is used to convert the string into the title-case i.e., The string meEruT will be converted to Meerut.
translate(table,deletechars = '')It translates the string according to the translation table passed in the function .
upper()It converts all the characters of a string to Upper Case.
zfill(width)Returns original string leftpadded with zeros to a total of width characters; intended for numbers, zfill() retains any sign given (less one zero).

Comments

Popular posts from this blog

Python File Handling & Exception Handling

Introduction to Python & its Data types

Python List, Tuple and Dictionary