Unit 1 Python
Unit 1 Python
Unit 1 Python
1.1 Introduction:
1
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
This example shows Python being run from a terminal (with $ representing the Unix prompt).
In other development environments, the details of executing programs may differ. IDLE
simplifies the whole process by presenting interpreter windows and a text editor within the
same application. You can run a script in IDLE by either choosing Run → Run Module or
pressing F5. Most programs are more interesting than this one. The examples in this book use
both the Python interpreter and scripts. You will be able to tell which is intended since shell
mode examples (i.e. entering lines directly into the interpreter) will always start with the
Python prompt, >>>. Working in shell mode is convenient for testing short bits of code
because you get immediate feedback. Think of it as scratch paper used to help you work out
problems. Anything longer than a few lines should be put into a script so it can be saved for
future use.
2. History of Python:
Python was developed by Guido van Rossum in the late eighties and early nineties at the
National Research Institute for Mathematics and Computer Science in the Netherlands.
1 You can also run the python interpreter by just entering the command python in a terminal. To exit from the interpreter type exit() and hit
return, or press Ctrl-D on a new line.
2 The print statement is one of the changes between Python 2.x and Python 3.x. In Python 3.x, print is a function and not a
2
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
• Python is derived from many other languages, including ABC, Modula-3, C, C++,
Algol-68, SmallTalk, and Unix shell and other scripting languages.
• Python is copyrighted. Like Perl, Python source code is now available under the GNU
General Public License (GPL).
• Python is now maintained by a core development team at the institute, although Guido
van Rossum still holds a vital role in directing its progress.
• Python 1.0 was released in November 1994. In 2000, Python 2.0 was released. Python
2.7.11 is the latest edition of Python 2.
• Meanwhile, Python 3.0 was released in 2008. Python 3 is not backward compatible
with Python 2. The emphasis in Python 3 had been on the removal of duplicate
programming constructs and modules so that "There should be one -- and preferably
only one -- obvious way to do it." Python 3.5.1 is the latest version of Python 3.
3. Features of python:
• Easy-to-read: Python code is more clearly defined and visible to the eyes.
• A broad standard library: Python's bulk of the library is very portable and
crossplatform compatible on UNIX, Windows, and Macintosh.
• Interactive Mode: Python has support for an interactive mode, which allows
interactive testing and debugging of snippets of code.
• Portable: Python can run on a wide variety of hardware platforms and has the same
interface on all platforms.
• Extendable: You can add low-level modules to the Python interpreter. These modules
enable programmers to add to or customize their tools to be more efficient.
• Databases: Python provides interfaces to all major commercial databases.
• GUI Programming: Python supports GUI applications that can be created and ported
3
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
to many system calls, libraries and windows systems, such as Windows MFC,
Macintosh, and the X Window system of Unix.
• Scalable: Python provides a better structure and support for large programs than shell
scripting.
Apart from the above-mentioned features, Python has a big list of good features. A few are
listed below-
• It supports functional and structured programming methods as well as OOP.
• It provides very high-level dynamic data types and supports dynamic type checking.
• It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.
4. Installing Python:
4
Windows platform
Binaries of latest version of Python 3 (Python 3.5.1) are available on this download page
The following different installation options are available.
• Windows x86-64 embeddable zip file Windows x86-64 executable installer
Windows x86-64 web-based installer
• Windows x86 embeddable zip file Windows x86 executable installer
• Windows x86 web-based installer
Note:In order to install Python 3.5.1, minimum OS requirements are Windows 7 with SP1. For
versions 3.0 to 3.4.x, Windows XP is acceptable.
Linux platform
Different flavors of Linux use different package managers for installation of new packages.
On Ubuntu Linux, Python 3 is installed using the following command from the terminal.
Mac OS
Download Mac OS installers from this URL:https://www.python.org/downloads/mac-osx/
• Mac OS X 64-bit/32-bit installer : python-3.5.1-macosx10.6.pkg
5
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Setting up PATH
Programs and other executable files can be in many directories. Hence, the operating systems
provide a search path that lists the directories that it searches for executables.
The important features are-
• The path is stored in an environment variable, which is a named string maintained by
the operating system. This variable contains information available to the command
shell and other programs.
• In Mac OS, the installer handles the path details. To invoke the Python interpreter from
any particular directory, you must add the Python directory to your path.
To add the Python directory to the path for a particular session in Unix-
• In the csh shell: type setenv PATH "$PATH:/usr/local/bin/python3" and press Enter.
To add the Python directory to the path for a particular session in Windows-
At the command prompt : type path
%path%;C:\Python and press Enter.
6
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Variable Description
7
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
$python # Unix/Linux or
python% # Unix/Linux or
C:>python # Windows/DOS
-X disable class-based built-in exceptions (just use strings); obsolete starting with
version 1.6
8
You can run Python from a Graphical User Interface (GUI) environment as well, if you have a
GUI application on your system that supports Python.
• Windows: PythonWin is the first Windows interface for Python and is an IDE with a
GUI.
• Macintosh: The Macintosh version of Python along with the IDLE IDE is available
from the main website, downloadable as either MacBinary or BinHex'd files.
If you are not able to set up the environment properly, then you can take the help of your
system admin. Make sure the Python environment is properly set up and working perfectly
fine.
6. Debugging:
Syntax errors
Python can only execute a program if the program is syntactically correct; otherwise,
the process fails and returns an error message. Syntax refers to the structure of a
program and the rules about that structure. For example, in English, a sentence must
begin with a capital letter and end with a period. this sentence contains a syntax
error. So does this one
For most readers, a few syntax errors are not a significant problem, which is why we
can read the poetry of e. e. cummings without spewing error messages. Python is not
so forgiving. If there is a single syntax error anywhere in your program, Python will
print an error message and quit, and you will not be able to run your program.
During the first few weeks of your programming career, you will probably spend a
lot of time tracking down syntax errors. As you gain experience, though, you will
make fewer syntax errors and find them faster.
Runtime errors
The second type of error is a runtime error, so called because the error does not
appear until you run the program. These errors are also called exceptions because
they usually indicate that something exceptional (and bad) has happened. Runtime
errors are rare in the simple programs you will see in the first few chapters, so it
might be a while before you encounter one.
9
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Semantic errors
The third type of error is the semantic error. If there is a semantic error in your
program, it will run successfully, in the sense that the computer will not generate
any error messages, but it will not do the right thing. It will do something else.
Specifically, it will do what you told it to do.
The problem is that the program you wrote is not the program you wanted to write.
The meaning of the program (its semantics) is wrong. Identifying semantic errors
can be tricky because it requires you to work backward by looking at the output of
the program and trying to figure out what it is doing.
One of the most important skills you will acquire is debugging. Although it can be
frustrating, debugging is one of the most intellectually rich, challenging, and interesting
parts of programming.
In some ways, debugging is like detective work. You are confronted with clues, and you
have to infer the processes and events that led to the results you see.
Debugging is usually a trial and error process. Once you have an idea what is going
wrong, you modify your program and try again. If your hypothesis was correct, then you
can predict the result of the modification, and you take a step closer to a working
program. If your hypothesis was wrong, you have to come up with a new one. As
Sherlock Holmes pointed out, “When you have eliminated the impossible, whatever
remains, however improbable, must be the truth.” (A. Conan Doyle, The Sign of Four )
For some people, programming and debugging are the same thing. That is, programming
is the process of gradually debugging a program until it does what you want. The idea is
that you should start with a program that does something and make small modifications,
debugging them as you go, so that you always have a working program.
For example, Linux is an operating system that contains thousands of lines of code, but it
started out as a simple program Linus Torvalds used to explore the Intel 80386 chip.
According to Larry Greenfield, one of Linus’s earlier projects was a program that would
switch between printing AAAA and BBBB. This later evolved into Linux (The Linux Users’
Guide Beta Version 1).
Natural languages are the languages that people speak, such as English, Spanish, and
French. They were not designed by people (although people try to impose some order on
them); they evolved naturally.
Formal languages are languages that are designed by people for specific applications.
For example, the notation that mathematicians use is a formal language that is particularly
good at denoting relationships among numbers and symbols. Chemists use a formal
10
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Programming languages are formal languages that have been designed to express
computations.
Formal languages tend to have strict rules about syntax. For example, 3+3=6 is a
syntactically correct mathematical statement, but 3=+6$ is not. H2O is a syntactically
correct chemical name, but 2Zz is not. Syntax rules come in two flavors, pertaining to
tokens and structure. Tokens are the basic elements of the language, such as words,
numbers, and chemical elements. One of the problems with 3=+6$ is that $ is not a legal
token in mathematics (at least as far as we know). Similarly, 2Zz is not legal because
there is no element with the abbreviation Zz. The second type of syntax rule pertains to
the structure of a statement— that is, the way the tokens are arranged. The statement
3=+6$ is structurally illegal because you can’t place a plus sign immediately after an
equal sign. Similarly, molecular formulas have to have subscripts after the element name,
not before.
When you read a sentence in English or a statement in a formal language, you have to
figure out what the structure of the sentence is (although in a natural language you do this
subconsciously). This process is called parsing. For example, when you hear the
sentence, “The brown dog barked”, you understand that the brown dog is the subject and
barked is the verb. Once you have parsed a sentence, you can figure out what it means, or
the semantics of the sentence. Assuming that you know what a dog is and what it means
to bark, you will understand the general implication of this sentence.
Although formal and natural languages have many features in common—tokens,
structure, syntax, and semantics—there are many differences:
ambiguity: Natural languages are full of ambiguity, which people deal with by using
contextual clues and other information. Formal languages are designed to be nearly
or completely unambiguous, which means that any statement has exactly one
meaning, regardless of context.
redundancy: In order to make up for ambiguity and reduce misunderstandings, natural
languages employ lots of redundancy. As a result, they are often verbose. Formal
languages are less redundant and more concise.
literalness: Natural languages are full of idiom and metaphor. If someone says, “The
penny dropped”, there is probably no penny and nothing dropped. Formal languages
mean exactly what they say.
Poetry: Words are used for their sounds as well as for their meaning, and the whole poem
together creates an effect or emotional response. Ambiguity is not only common but
often deliberate.
Prose: The literal meaning of words is more important, and the structure contributes
11
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
more meaning. Prose is more amenable to analysis than poetry but still often
ambiguous.
Programs: The meaning of a computer program is unambiguous and literal, and can be
understood entirely by analysis of the tokens and structure.
Here are some suggestions for reading programs (and other formal languages). First,
remember that formal languages are much more dense than natural languages, so it takes
longer to read them. Also, the structure is very important, so it is usually not a good idea to
read from top to bottom, left to right. Instead, learn to parse the program in your head,
identifying the tokens and interpreting the structure. Finally, the details matter. Little things
like spelling errors and bad punctuation, which you can get away with in natural languages,
can make a big difference in a formal language.
Braces are used for different purposes. If you just want a list to contain some elements and
organize them by index numbers (starting from 0), just use the [] and add elements as
necessary. {} are special in that you can give custom id's to values like a = {"John":
14}. Now, instead of making a list with ages and remembering whose age is where, you can
just access John's age by a["John"].
The [] is called a list and {} is called a dictionary (in Python). Dictionaries are basically a
convenient form of list which allow you to access data in a much easier way.
However, there is a catch to dictionaries. Many times, the data that you put in the dictionary
doesn't stay in the same order as before. Hence, when you go through each value one by one, it
won't be in the order you expect. There is a special dictionary to get around this, but you have
to add this line from collections import OrderedDict and replace {} with OrderedDict(). But, I
don't think you will need to worry about that for now.
If you are not sure what type a value has, the interpreter can tell you.
12
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
<class ’str’>
>>> type(17)
< class ’int’>
Strings belong to the type str and integers belong to the type int. Less obviously,
numbers with a decimal point belong to a type called float, because these numbers
are represented in a format called floating-point.
>>> type(3.2)
<class ’float’>
What about values like “17” and “3.2”? They look like numbers, but they are in
quotation marks like strings.
>>> type("17")
<class ’str’>
>>> type("3.2")
<class ’str’>
They’re strings. Strings in Python can be enclosed in either single quotes (’) or
double quotes (”):
Double quoted strings can contain single quotes inside them, as in "What’s your
name?", and single quoted strings can have double quotes inside them, as in ’The cat
said "Meow!"’.
When you type a large integer, you might be tempted to use commas between groups of three
digits, as in 1,000,000.
2. Variables:
13
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
This example makes three assignments. The first assigns the string "What’s your
name?" to a new variable named message. The second assigns the integer 17 to n, and
the third assigns the floating-point number 3.14159 to pi. The assignment operator,
=, should not be confused with an equals sign (even though it uses the same
character). Assignment operators link a name, on the left hand side of the operator,
with a value, on the right hand side. This is why you will get an error if you enter:
>>> 17 = n
A common way to represent variables on paper is to write the name with an arrow
pointing to the variable’s value. This kind of figure is called a state diagram because
it shows what state each of the variables is in (think of it as the variable’s state of
mind). This diagram shows the result of the assignment statements:
messag "What’s your name?"
e n pi 17
3.14159
The print statement also works with variables.
>>>print (message)
What’s your name?
>>> print (n)
17
>>> print (pi)
3.14159
In each case the result is the value of the variable. Variables also have types; again,
we can ask the interpreter what they are.
>>> type(message)
<class ’str’>
>>> type(n)
< class ’int’>
>>> type(pi)
< class ’float’>
The type of a variable is the type (or kind) of value it refers to.
14
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Programmers generally choose names for their variables that are meaningful—they
document what the variable is used for. Variable names can be arbitrarily long. They
can contain both letters and numbers, but they have to begin with a letter. Although it
is legal to use uppercase letters, by convention we don’t. If you do, remember that
case matters. Bruce and bruce are different variables. The underscore character ( ) can
appear in a name. It is often used in names with multiple words, such as myname or
priceofteainchina. If you give a variable an illegal name, you get a syntax error:
>>> 76trombones = "big parade"
SyntaxError: invalid syntax
>>> more$ = 1000000
SyntaxError: invalid syntax
>>> class = "COMP150"
SyntaxError: invalid syntax
76trombones is illegal because it does not begin with a letter. more$ is illegal because
it contains an illegal character, the dollar sign. But what’s wrong with class? It turns
out that class is one of the Python keywords. Keywords define the language’s rules
and structure, and they cannot be used as variable names. Python has thirty-one
keywords:
and del from not while
as elif global or with
assert else if pass yield
break except import print
class exec in raise
continue finally is return
def for lambda try
4. Type conversion:
Sometimes, you may need to perform conversions between the built-in types. To convert
between types, you simply use the type-name as a function.
There are several built-in functions to perform conversion from one data type to another.
15
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Function Description
int(x [,base])
Converts x to an integer. The base specifies the base if x is a string.
16
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Operators are special symbols that represent computations like addition and
multiplication. The values the operator uses are called operands. The following are
all legal Python expressions whose meaning is more or less clear:
20 + 32 hour - 1 hour * 60 + minute minute / 60
5 ** 2
(5 + 9) * (15 - 7)
The symbols +, -, *, /, have the usual mathematical meanings. The symbol, **, is the
exponentiation operator. The statement, 5 ** 2, means 5 to the power of 2, or 5
squared in this case. Python also uses parentheses for grouping, so we can force
operations to be done in a certain order just like we can in mathematics.
When a variable name appears in the place of an operand, it is replaced with its value
before the operation is performed. Addition, subtraction, multiplication, and
exponentiation all do what you expect, but you might be surprised by division. The
following operation has an unexpected result:
>>> minute = 59
>>> minute / 60
0 .9833333333333333
The value of minute is 59, and 59 divided by 60 is 0.98333, not 0. The reason for the
discrepancy is that Python is performing integer division3. When both of the
operands are integers, the result must also be an integer, and by convention, integer
division always rounds down, even in cases like this where the next integer is very
close. A possible solution to this problem is to calculate a percentage rather than a
fraction:
17
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Operators are special symbols that represent computations like addition and
multiplication. The values the operator uses are called operands. The following are
all legal Python expressions whose meaning is more or less clear:
20 + 32 hour - 1 hour * 60 + minute minute / 60
5 ** 2
(5 + 9) * (15 - 7)
The symbols +, -, *, /, have the usual mathematical meanings. The symbol, **, is the
exponentiation operator. The statement, 5 ** 2, means 5 to the power of 2, or 5
squared in this case. Python also uses parentheses for grouping, so we can force
operations to be done in a certain order just like we can in mathematics.
When a variable name appears in the place of an operand, it is replaced with its value
before the operation is performed. Addition, subtraction, multiplication, and
exponentiation all do what you expect, but you might be surprised by division. The
following operation has an unexpected result:
>>> minute = 59
>>> minute / 60
0 .9833333333333333
The value of minute is 59, and 59 divided by 60 is 0.98333, not 0. The reason for the
discrepancy is that Python is performing integer division4. When both of the
operands are integers, the result must also be an integer, and by convention, integer
division always rounds down, even in cases like this where the next integer is very
close. A possible solution to this problem is to calculate a percentage rather than a
fraction:
Again the result is rounded down, but at least now the answer is approximately correct.
Another alternative is to use floating-point division.
6. Expressions:
18
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Confusingly, evaluating an expression is not quite the same thing as printing a value.
>>> message = "What’s your name?"
>>> message
"What’s your name?"
>>> print(message)
What’s your name?
When the Python shell displays the value of an expression, it uses the same format
you would use to enter a value. In the case of strings, that means that it includes the
quotation marks. But the print statement prints the value of the expression, which in
this case is the contents of the string. In a script, an expression all by itself is a legal
statement, but it doesn’t do anything. The script
17
3.2
"Hello, World!"
1+1
produces no output at all. How would you change the script to display the values of
these four expressions?
19
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
$ python
Python 3.3.2 (default, Dec 10 2013, 11:35:01)
[GCC 4.6.3] on Linux
Type "help", "copyright", "credits", or "license" for more information. >>>
On Windows:
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on
win32
Type "copyright", "credits" or "license()" for more information.
>>>
Type the following text at the Python prompt and press Enter-
If you are running the older version of Python (Python 2.x), use of parenthesis as inprint
function is optional. This produces the following result-
Hello, Python!
$ python test.py
Hello, Python!
On Windows
C:\Python34>Python test.py
20
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Hello, Python!
Let us try another way to execute a Python script in Linux. Here is the modified test.py
file-
#!/usr/bin/python3 print
("Hello, Python!")
We assume that you have Python interpreter available in the /usr/bin directory. Now, try to run
this program as follows-
Hello, Python!
Order of Operations:
When more than one operator appears in an expression, the order of evaluation
depends on the rules of precedence. Python follows the same precedence rules for its
mathematical operators that mathematics does. The acronym PEMDAS is a useful
way to remember the order of operations:
1. Parentheses have the highest precedence and can be used to force an expression
to evaluate in the order you want. Since expressions in parentheses are evaluated
first, 2*(3-1) is 4, and (1+1)**(5-2) is 8. You can also use parentheses to make
an expression easier to read, as in (minute*100)/60, even though it doesn’t
change the result.
2. Exponentiation has the next highest precedence, so 2**1+1 is 3 and not 4, and
3*1**3 is 3 and not 27.
3. Multiplication and Division have the same precedence, which is higher than
Addition and Subtraction, which also have the same precedence. So 2*3-1 yields
5 rather than 4, and 2/3-1 is -1, not 1 (remember that in integer division, 2/3=0).
Operators with the same precedence are evaluated from left to right. So in the
expression minute*100/60, the multiplication happens first, yielding 5900/60, which
in turn yields 98. If the operations had been evaluated from right to left, the result
would have been 59*1, which is 59, which is wrong. Similarly, in evaluating 17-4-3,
21
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
1. IF statement:
The IF statement is similar to that of other languages. The if statement contains a logical
expression using which the data is compared and a decision is made based on the result of the
comparison.
Syntax
if expression: statement(s)
If the boolean expression evaluates to TRUE, then the block of statement(s) inside the if
statement is executed. In Python, statements in a block are uniformly indented after the :
symbol. If boolean expression evaluates to FALSE, then the first set of code after the end of
block is executed.
22
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Flow Diagram
nested if statements You can use one if or else if statement inside another if
or else if statement(s).
Example
num = 3
if num > 0:
print(num, "is a positive number.")
print("This is always printed.")
num = -1 if
num > 0:
print(num, "is
a positive number.")
print("This is
also always
printed.")
When the above code is executed, it produces the following result −
23
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
3 is a positive number.
This is always printed.
When variable num is equal to 3, test expression is true and body inside body of if is executed.
If variable num is equal to -1, test expression is false and body inside body of if is skipped.
The print() statement falls outside of the if block (unindented). Hence, it is executed regardless
of the test expression.
2. IF ELSE Statements
An else statement can be combined with an if statement. An else statement contains a block of
code that executes if the conditional expression in the if statement resolves to 0 or a FALSE
value.
The else statement is an optional statement and there could be at the most only one else
statement following if.
Syntax
The syntax of the if...else statement is-
if expression:
statement(s) else:
statement(s)
Flow Diagram
24
Example
# Program checks if the number is positive or negative
# And displays an appropriate message
num = 3
if num >= 0:
print("Positive or Zero")
else:
print("Negative number")
Positive or Zero
In the above example, when num is equal to 3, the test expression is true and body of if is
executed and body of else is skipped.
If num is equal to -5, the test expression is false and body of else is executed and body
25
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
of if is skipped.
There may be a situation when you want to check for another condition after a condition
resolves to true. In such a situation, you can use the nested if construct.
In a nested if construct, you can have an if...elif...else construct inside another if...elif...else
construct.
Syntax
The syntax of the nested if...elif...else construct may be-
if expression1:
statement(s)
if expression2:
statement(s)
elif expression3:
statement(s)
else
statement(s)
elif expression4:
statement(s)
else:
statement(s)
26
Example
# !/usr/bin/python3
# In this program, we input a number
# check if the number is positive or
# negative or zero and display
# an appropriate message
# This time we use nested if
Output 1
Enter a number: 5
Positive number
Output 2
Enter a number: -1
Negative number
Output 3
Enter a number: 0
Zero Divisible by 3 and 2
enter number5
27
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
1.4 Looping:
1. For:
The for loop in Python is used to iterate over a sequence (list, tuple, string) or other iterable
objects. Iterating over a sequence is called traversal.
Body of for
Here, val is the variable that takes the value of the item inside the sequence on each iteration.
Loop continues until we reach the last item in the sequence. The body of for loop is separated
from the rest of the code using indentation.
28
Example: Python for Loop
# Program to find the sum of all numbers stored in
a list
# List of numbers
sum = 0
29
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
sum = sum+val
The sum is 48
2. While Loop
The while loop in Python is used to iterate over a block of code as long as the test expression
(condition) is true.
We generally use this loop when we don't know beforehand, the number of times to iterate.
while test_expression:
Body of while
In while loop, test expression is checked first. The body of the loop is entered only if
the test_expression evaluates to True. After one iteration, the test expression is checked again.
This process continues until the test_expression evaluates to False.
Body starts with indentation and the first unindented line marks the end.
Python interprets any non-zero value as True. None and 0 are interpreted as False.
30
Example: Python while Loop
# Program to add natural
# numbers upto
# sum = 1+2+3+...+n
# n = int(input("Enter n: "))
n = 10
31
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
sum = 0
i=1
while i <= n:
sum = sum + i
Enter n: 10
The sum is 55
In the above program, the test expression will be True as long as our counter variable i is less
than or equal to n (10 in our program).
We need to increase the value of counter variable in the body of the loop. This is very
important (and mostly forgotten). Failing to do so will result in an infinite loop (never ending
loop).
3. Nested loops:
Python programming language allows to use one loop inside another loop. Following section
shows few examples to illustrate the concept.
32
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
Output 1
Enter a number: 5
Positive number
Output 2
Enter a number: -1
Negative number
Output 3
Enter a number: 0
Zero
The break statement terminates the loop containing it. Control of the program flows to the
statement immediately after the body of the loop.
33
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
If break statement is inside a nested loop (loop inside another loop), break will terminate the
innermost loop.
Syntax of break
break
Flowchart of break
34
Example: Python break
# Use of break statement inside loop
print("The end")
Output
The end
In this program, we iterate through the "string" sequence. We check if the letter is "i", upon
35
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
which we break from the loop. Hence, we see in our output that all the letters up till "i" gets
printed. After that, the loop terminates.
The continue statement is used to skip the rest of the code inside a loop for the current iteration
only. Loop does not terminate but continues on with the next iteration.
Syntax of Continue
continue
Flowchart of continue
The working of continue statement in for and while loop is shown below.
36
Example: Python continue
# Program to show the use of continue statement inside loops
if val == "i":
continue
print(val)
print("The end")
Output
37
Produced with a Trial Version of PDF Annotator - www.PDFAnnotator.com
The end
This program is same as the above example except the break statement has been replaced with
continue.
We continue with the loop, if the string is "i", not executing the rest of the block. Hence, we
see in our output that all the letters except "i" gets printed.
38