Python Programming Unit-II

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 23

Data types:

There are various data types in python. Some of the important types are

1. Numeric types 2.strings 3.booleans

Numeric types:

There are 3 distinct numeric types –


a) Integers
b) floating point numbers and
c) Complex numbers.

Integers:
Integers are whole numbers which can be either positive or negative without any
decimal point of unlimited length. Integers must be written without commas.

The most common implementation of the int data type in many programming
languages consists of the integers from -2,147,483,648 (-2 31 ) to 2,147,483,647
(231 -1).
However, the magnitude of a Python integer is much larger and is limited only by
the memory of your computer.

Ex: 23, 34 ,0 ,-345 etc.

Floating point numbers:


Floating point numbers are the numbers which can be either positive or negative
that contain a decimal point. Floating point numbers can also be expressed in
scientific form with an ‘e’ or ‘E’ to indicate the power of ‘10’

computer’s memory limits not only the range but also the precision that can
be represented for real numbers. Values of the most common implementation of
Python’s float type range from approximately -10308 to 10308 and have 16 digits of
precision.

Ex: 0.0, 2.3,-4.5, 3.5e9 etc.

Page 1
Complex numbers:
Complex number is a number that can be expressed in a form a+bj where a is real
part and b is imaginary part and ‘j’ or ‘J’ as an imaginary unit.
3+4j 3.14j 10.j 10j .001j 1e100j 3.14e-10j

Booleans:

Python has explicit Boolean data type called bool with the values True and False
available as preassigned built-in names. Internally, the names True and False are
instances of bool, which in turn a subclass of built-in integer type int.

>>> type(True)
<class ‘bool’>

>>>x=True

>>> isinstance(x,int)
True

Strings:

Python can also manipulate strings, which can be enclosed in single quotes ('...') or
double quotes ("...") with the same result .

a = "Hey"
b = "Hey there!"
c = "742 Evergreen Terrace"
d = "1234"
e = "'How long is a piece of string?' he asked"
f = "'!$*#@ you!' she replied"

note:
Double-quoted strings are used for composing strings that contain single quotation
marks or apostrophes and use single-quote marks to enclose a string literal that
contains double quotes as part of the string

Ex:
>>> print("I'm using a single quote in this string!")
I'm using a single quote in this string!

Page 2
>>> print('Your assignment is to read "Hamlet" by tomorrow')
Your assignment is to read "Hamlet" by tomorrow

Access characters in a string:

The individual characters of a string can be accessed using indexing and a range of
characters can be accessed using slicing. The index must be an integer and Index
starts from 0. Python also allows negative indexing for its sequences. The index of
-1 refers to the last item, -2 to the second last item and so on.

Trying to access a character out of index range will raise an IndexError. We can't
use float or other types, this will result into TypeError.

Ex:

>>>str = 'python programming'


>>>print('str = ', str)
str = python programming

>>>str = 'python programming'


>>>print('str[0] = ', str[0])
str[0] = p

>>>str = 'python programming'


>>>print('str[-1] = ', str[-1])
str[-1] = g

>>>str = 'python programming'


>>>print('str[1:5] = ', str[1:5])
str[1:5] = ytho

>>>str = 'python programming'


>>>print('str[5:-2] = ', str[5:-2])
str[5:-2] = n programmi

Page 3
Strings are immutable. This means that elements of a string cannot be changed
once it has been assigned. We can simply reassign different strings to the same
name.

>>> my_string='python'
>>> my_string[5]='a' # results in TypeError: 'str' object does not support
item assignment

We cannot delete or remove characters from a string. But deleting the string
entirely is possible using the keyword del.

>>> my_string='python'
>>> print(my_string)
python

>>> del my_string[1] #results in TypeError: 'str' object doesn't support item
deletion

>>> del my_string # deletes the entire string

Operations on strings:

The following are some of the operations that can be performed over strings

Operator Description Example


>>> str1='py'
>>> str2='thon'
>>> str3=str1+str2
>>> print(str3)
python
The + operator can be used to
+
concatenate two strings. Ex2:
Simply writing two string literals >>> 'py'+'thon'
together also concatenates them. 'python'

Ex3:
>>> 'py' 'thon'
'python'

* The * operator can be used to repeat >>> str1='python'


the string for a given number of >>> str1*3
times. 'pythonpythonpython'

Page 4
>>>str = 'python programming'
[]
Returns the character at the given >>>print( str[0])
index p

>>>str = 'python programming'


Fetches the characters in the range
[:] specified by two index operands
>>>print( str[1:5])
separated by the : symbol ytho

>>> 'a' in 'program'


Returns True if a sub string exists
in True
within a string else returns False
Returns True if a sub string does not >>> 'at' not in 'battle'
not in exists within a string else returns False
False
Ex:
len(string) >>> string="this is a good example"
returns the length of the string
>>> len(string)
22

String formatting:

Python uses C-style string formatting to create new, formatted strings. The string
formatting operator "%" is used to perform string formatting. The format specifiers
like %s ,%d etc, can be used

Ex1:

>>> name = "John"


>>> print("Hello, %s!" % name)
Hello, John!

Ex2:
>>> name = "John"
>>> age = 23
>>> print("%s is %d years old." % (name, age))
John is 23 years old.

Ex3:
>>> print("my name is %s and my age is %d"%('pavan',21))
my name is pavan and my age is 21

Page 5
The list of complete set of symbols which can be used along with % are given
below.

Page 6
String formatting using format( ) :

The format() method can handle complex string formatting more


efficiently. This method of in-built string class provides the ability to do
complex variable substitutions and value formatting. This new formatting
technique is regarded as more elegant. The general syntax of
the format() method is as follows:

string.format(str1, str2,...)

The string itself contains placeholders {}, in which the values of variables
are successively inserted.

Ex:
>>>name="Bill"
>>>age=25
>>>"My name is {} and I am {} years old.". format (name, age)
'My name is Bill and I am 25 years old.'

Ex:
>>>myStr = "My name is {} and I am {} years old."
>>>myStr.format(name, age)
'my name is Bill and I am 25 years old.'

String methods:

capitalize( ):
returns the capitalized version of the string i.e., make the first character have
upper case and the rest lower case

title( ):
Return a title cased version of the string, i.e., all words start with uppercase and
rest of the characters in words are in lowercase.

lower( ):
Return a copy of the string converted to lowercase.

Page 7
upper( ):

Return a copy of the string converted to uppercase.

swapcase( ):
Return a copy of the string with uppercase characters converted to lowercase
and vice versa.

count(sub[, start[, end]]) :

Return the number of non-overlapping occurrences of substring sub in


string in the range [start:end]. Optional arguments start and end are
interpreted as in slice notation. String Search is case-sensitive.

find(sub[, start[, end]]) :

Return the lowest index in the string where substring sub is found, such that sub
is contained within the string in the range [start:end]. Optional arguments start and
end are interpreted as in slice notation. Return -1 on failure.

rfind(sub[, start[, end]]) :

Return the highest index in the string where substring sub is found, such that
sub is contained within the string in the range [start:end]. Optional arguments start
and end are interpreted as in slice notation. Return -1 on failure

index(sub[, start[, end]]) :

Return the lowest index in the string where substring sub is found, such that sub
is contained within the string in the range [start:end]. Optional arguments start and
end are interpreted as in slice notation. Raises ValueError when the substring is
not found.(same as find but return value on failure different)

rindex(sub[, start[, end]]) :

Return the highest index in the string where substring sub is found, such that
sub is contained within the string in the range [start:end]. Optional arguments start
and end are interpreted as in slice notation

Page 8
replace(old, new[, count]):

Return a copy of S with all occurrences of substring old replaced by new. If the
optional argument count is given, only the first count occurrences are replaced.

Ex:

>>> var='This is a good example'


>>> str='was'
>>> var.replace('is',str)
'Thwas was a good example'
>>> var.replace('is',str,1)
'Thwas is a good example'

split(sep=None, maxsplit=-1) :

Return a list of the words in the string, using sep as the delimiter string. If maxsplit
is given, at most maxsplit splits are done. If sep is not specified or is None, any
whitespace string is a separator and empty strings are removed from the result.

Ex:
>>> var='This is a good example'
>>> var.split(sep=' ')
['This', 'is', 'a', 'good', 'example']
>>> var.split(' ')
['This', 'is', 'a', 'good', 'example']
>>> var.split(sep='@')
['This is a good example']
>>> var.split(sep=' ',maxsplit=2)
['This', 'is', 'a good example']

>>> var.split(sep=' ',maxsplit=3)


['This', 'is', 'a', 'good example']

Page 9
join(iterable):

Return a string which is the concatenation of the strings in the


iterable. The separator between elements is S.

Ex:
>>> list1=['This', 'is', 'a', 'good', 'example']
>>> list1
['This', 'is', 'a', 'good', 'example']
>>> string=" "
>>> string.join(list1)
'This is a good example'

istitle( ):

Return True if S is a titlecased string and false otherwise

Ex:
>>>string=”this is a good example”
>>>string.istitle( )
False

Operators:
Operators are special symbols in Python that carry out arithmetic or logical
computation.

Types of Operator:

Python language supports the following types of operators −


 Arithmetic Operators
 Comparison (Relational) Operators
 Assignment Operators
 Logical Operators
 Bitwise Operators
 Membership Operators
 Identity Operators

Page 10
Arithmetic Operators:
These operators are used perform arithmetic operations like addition, substraction,
multiplication, division etc. the various arithmetic operators are

Operato
r Meaning Example

>>>x,y=20,10
+ Add two operands or unary plus >>>x+y
30

>>>x,y=20,10
Subtract right operand from the left or unary
- >>>x-y
minus
10

>>>x,y=20,10
>>>x*y
* Multiply two operands
200

>>> x,y=20,10
Divide left operand by the right one (always
/ >>> x/y
results into float)
2.0

>>> x,y=20,10
Modulus - remainder of the division of left
% >>> x%y
operand by the right
0

Floor division - division that results into >>> x,y=20,10


// whole number adjusted to the left in the >>> x//y
number line 2

>>> x,y=20,10
Exponent - left operand raised to the power
** >>> x**y
of right
10240000000000

Page 11
Comparison (Relational) Operators:

Comparison operators are used to compare values. It either


returns True or False according to the condition.

Operato
r Meaning Example

>>> x,y=20,10
Greater that - True if left operand is greater >>> x>y
> than the right True

>>> x,y=20,10
Less that - True if left operand is less than >>> x<y
< the right False

>>> x,y=20,10
>>> x==y
== Equal to - True if both operands are equal False

>>> x,y=20,10
>>> x!=y
!= Not equal to - True if operands are not equal True

>>> x,y=20,10
Greater than or equal to - True if left operand >>> x>=y
>= is greater than or equal to the right True

>>> x,y=20,10
Less than or equal to - True if left operand is >>> x<=y
<= less than or equal to the right False

Page 12
Assignment operators:

Assignment operators are used in Python to assign values to variables.

Operator Example Equivatent to

= x=5 x=5

+= x += 5 x=x+5

-= x -= 5 x=x-5

*= x *= 5 x=x*5

/= x /= 5 x=x/5

%= x %= 5 x=x%5

//= x //= 5 x = x // 5

**= x **= 5 x = x ** 5

&= x &= 5 x=x&5

|= x |= 5 x=x|5

^= x ^= 5 x=x^5

>>= x >>= 5 x = x >> 5

<<= x <<= 5 x = x << 5

Page 13
Logical operators:

Logical operators are the and, or, not operators.

Operato
r Meaning Example

>>> x=True
>>> y=False
>>> x and y
and True if both the operands are true False

>>> x=True
>>> y=False
>>> x or y
or True if either of the operands is true True

>>> x=True
>>> y=False
>>> not y
not True if operand is false (complements the operand) True

Bitwise operators:

Bitwise operator works on bits and performs bit-by-bit operation.


Let x = 10 (0000 1010 in binary) and y = 4 (0000 0100 in binary)

Operator Meaning Example

& Bitwise AND x& y = 0 (0000 0000)

| Bitwise OR x | y = 14 (0000 1110)

~ Bitwise NOT ~x = -11 (1111 0101)

^ Bitwise XOR x ^ y = 14 (0000 1110)

>> Bitwise right shift x>> 2 = 2 (0000 0010)

<< Bitwise left shift x<< 2 = 40 (0010 1000)

Page 14
Membership operators:

in and not in are the membership operators in Python. They are used to test whether a value or
variable is found in a sequence (string, list, tuple, set and dictionary).In a dictionary we can only
test for presence of key, not the value.
Operator Description Example

in Evaluates to true if it finds a variable in >>> 'py' in 'python'


the specified sequence and false
otherwise. True

not in Evaluates to true if it does not finds a >>> 'py' not in 'python'
variable in the specified sequence and
false otherwise. False

Identity operators
is and is not are the identity operators in Python. They are used to check if two
values (or variables) are located on the same part of the memory. Two variables that
are equal does not imply that they are identical.
Operator Description Example

is Evaluates to true if the variables on either >>> x=3


side of the operator point to the same
object and false otherwise. >>> y=3

>>> id(x)

1631445808

>>> id(y)

1631445808

>>> x is y

True

Page 15
is not Evaluates to false if the variables on either >>> x=[1,2,3,4]
side of the operator point to the same
object and true otherwise. >>> y=[1,2,3,4]

>>> id(x)

38243464

>>> id(y)

38279328

>>> x is not y

True

Operator precedence: (python 3.7.4)

The following table summarizes the operator precedence in Python, from lowest
precedence (least binding) to highest precedence (most binding). Operators in
the same box have the same precedence. Unless the syntax is explicitly given,
operators are binary. Operators in the same box group left to right (except for
exponentiation, which groups from right to left).

Operator Description
lambda Lambda expression
if – else Conditional expression
or Boolean OR
and Boolean AND
not x Boolean NOT
Comparisons, including
in, not in, is, is not, <, <=, >, >=, !=, =
membership tests and identity
=
tests
| Bitwise OR
^ Bitwise XOR
& Bitwise AND

Page 16
Operator Description
<<, >> Shifts
+, - Addition and subtraction
Multiplication, matrix
*, @, /, //, % multiplication, division, floor
division, remainder
Positive, negative, bitwise
+x, -x, ~x
NOT
** Exponentiation
await x Await expression
x[index], x[index:index], x(arguments. Subscription, slicing, call,
..), x.attribute attribute reference
Binding or tuple display, list
(expressions...), [expressions...], {key:
display, dictionary display, set
value...},{expressions...}
display

Loops :

While loop:

The syntax of while loop is

while expression:
block1 of statements
else:
block2 of statements
statement-x

Here expression is any valid expression. Block of statements can contain one or
more statements with uniform indentation. the else clause in while loop is
optional.The while statement repeatedly execute block1 of statements as long as
the expression is true. If the expression is false then the block2 of statements in the
else clause (if present ) gets executed and loop terminates by transferring the
control to the next immediate statement of while loop i.e., statement –x.

Page 17
While loop can be terminated with a break statement. In such case, the else
part is also ignored. Hence a while loop’s else clause runs if no break occurs and
condition is false.

Ex1:

#demo of while with else clause


count=1
while(count<=3):
print("python programming")
count =count+1
else:
print("else clause statement is executed")
print("end of program")

output:

python programming
python programming
python programming
else clause statement is executed
end of program

Ex2:

#demo of while with else clause and break


count=1
while(count<=3):
print("python programming")
count =count+1
if count==3:
break
else:
print("else clause statement is executed")
print("end of program")

Page 18
output:

python programming
python programming
end of program

for loop:

The for loop is used to iterate over the elements of a sequence (such as a string,
tuple or list) or other iterable object.

for iterating_var in sequence:


block1 statements
else:
block2 statements
statement-x

Block of statements can contain one or more statements with uniform indentation.
the else clause in for loop is optional. If a sequence contains an expression list, it is
evaluated first. Then, the first item in the sequence is assigned to the iterating
variable iterating_var. Next, the block1 statements gets executed. Each item in the
list is assigned to iterating_var, and the block1 statements gets executed until the
entire sequence is exhausted.

After the entire sequence is exhausted, the block2 of statements in the else clause
(if present) gets executed and loop terminates by transferring the control to the next
immediate statement of for loop i.e., statement –x

for loop can be terminated with a break statement. In such case, the else part is also
ignored. Hence a for loop’s else clause runs if no break occurs and sequence is
exhausted.

Page 19
Ex1:

numbers = [11,33,55,39,55,75,36,21,23,41,13]

for num in numbers:


if num%2 == 0:
print ('the list contains an even number',num)
break
else:
print ('the list doesnot contain even number')

print("exit")

output:

the list contains an even number 36


exit

Ex2:
write a program that prints out the decimal equivalents of 1/2, 1/3, 1/4, . . . ,1/10

sol:
#program that prints out the decimal equivalents of 1/2, 1/3, 1/4, . . . ,1/10
for i in range(2,11):
print("decimal equivalent of 1/",i, "is" ,1/i)

output:

decimal equivalent of 1/ 2 is 0.5


decimal equivalent of 1/ 3 is 0.3333333333333333
decimal equivalent of 1/ 4 is 0.25
decimal equivalent of 1/ 5 is 0.2
decimal equivalent of 1/ 6 is 0.16666666666666666
decimal equivalent of 1/ 7 is 0.14285714285714285
decimal equivalent of 1/ 8 is 0.125
decimal equivalent of 1/ 9 is 0.1111111111111111
decimal equivalent of 1/ 10 is 0.1

Page 20
Ex3:

#Write a program using a for loop that loops over a sequence.

Sol:
str="cse"
print("the characters in the string are")
for i in str:
print(i)
list1=["civil","eee","mech","ece","cse"]
print("the items in the list are")
for i in list1:
print(i)

output:

the characters in the string are


c
s
e
the items in the list are
civil
eee
mech
ece
cse

Page 21
break statement:

The break statement breaks out of the innermost enclosing for or while loop. When
the loop is terminated by a break statement, the else clause of the loop (if present) is
not executed.

Ex1:

#program to illustrate break statement

for i in range(1,11):

if (i==5):

break

print(i,end=" ")

print("\ndone")

output:

1234

done

continue statement:

The continue statement is used to end the current iteration in a for loop (or
a while loop) and continues with the next iteration of the loop

Page 22
Ex:

#program to illustrate continue statement

for i in range(1,11):

if (i==5):

continue

print(i,end=" ")

print("\ndone")

output:

1 2 3 4 6 7 8 9 10

done

pass statement:
The pass statement does nothing. It can be used when a statement is required
syntactically but the program requires no action.

Ex:
#program to illustrate pass statement

for i in range(1,11):
if (i==5):
pass
print(i,end=" ")
print("\ndone")

output:
1 2 3 4 5 6 7 8 9 10
done

Page 23

You might also like