Python Notes
Python Notes
Chapter 1.
Python Interpreter:
➢ The Python Interpreter is the engine that translates and runs Python code.
➢ There are two modes to use the interpreter:
1. Immediate Mode:
▪ Type Python expressions directly into the interpreter window.
▪ Results are shown immediately.
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
2. Script Mode:
For Example
python greeting.py
• Program interaction
o The script will prompt: What is your name?
o You enter your name, e.g., Inbalatha
• Output from the script
o It responds: Hello, Inbalatha! Welcome to Python script mode.
• Why use script mode?
o Ideal for writing complete programs
o Allows saving and reusing code
o Better suited for larger or more complex tasks
• Input:
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
2. Runtime Errors
➢ Errors that occur while the program is running (e.g., dividing by zero or
accessing an invalid index).
3. Semantic Errors
➢ The program runs without crashing but produces incorrect results due to
flawed logic or meaning.
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
1.6 Glossary
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
natural language Any one of the languages that people speak that evolved naturally.
object code The output of the compiler after it translates the program.
parse To examine a program and analyze the syntactic structure.
portability A property of a program that can run on more than one kind of computer.
print function A function used in a program or script that causes the Python interpreter to display a value
on its output device.
Problem solving The process of formulating a problem, finding a solution, and expressing the solution.
program a sequence of instructions that specifies to a computer actions and computations to be performed.
Python shell An interactive user interface to the Python interpreter. The user of a Python shell types
commands at the prompt (>>>), and presses the return key to send these commands immediately to
the interpreter for processing. The word shell comes from Unix.
runtime error An error that does not occur until the program has started to execute but that prevents
the program from continuing.
script A program stored in a file (usually one that will be interpreted).
semantic error An error in a program that makes it do something other than what the programmer intended.
semantics The meaning of a program.
source code A program in a high-level language before being compiled.
syntax The structure of a program.
syntax error An error in a program that makes it impossible to parse — and therefore impossible to interpret.
token One of the basic elements of the syntactic structure of a program, analogous to a word in a natural
language.
Chapter 2
Variables, Expressions and Statements
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
<class 'str'>
>>> type(17)
<class 'int'>
➢ strings belong to the class str and integers belong to the class int.
➢ Less obviously, numbers with a decimal point belong to a class called float,
because these numbers are represented in a format called floating-point.
>>> type(3.2)
<class 'float'>
➢ Also values like "17"and "3.2” 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 ("), or three of each ('''or """)
➢ Double quoted strings can contain single quotes inside them, as in "Bruce's beard", and single
quoted strings can have double quotes inside them, as in 'The knights who say "Ni!"'.
➢ Strings enclosed with three occurrences of either quote symbol are called triple quoted strings. They can
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
2.2 Variables
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
➢ The assignment token, =, should not be confused with equals, which uses the token
==.
➢ The assignment statement binds a name, on the left-hand side of the operator, to a
value, on the right-hand side.
➢ Basically, an assignment is an order, and the equals operator can be read as a question
mark. This is why you will get an error if you enter:
>>> 17 = n
File "<interactive input>", line 1
SyntaxError: can't assign to literal
➢ If you ask the interpreter to evaluate a variable, it will produce the value that is currently
linked to the variable:
>>> message
'What's up, Doc?'
>>> n
17
>>> pi
3.14159
➢ We use variables in a program to “remember” things, perhaps the current score at the
football game.
➢ But variables are variable.
➢ This means they can change over time, just like the scoreboard at a football game.
➢ We can assign a value to a variable, and later assign a different value to the same
variable. (This is different from maths. In maths, if you give ‘x‘ the value 3, it cannot
change to link to a different value half-way through your calculations!)
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
➢ We changed the value of day three times, and on the third assignment we even made it
refer to a value that was of a different type.
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
o Class is illegal since It turns out that class is one of the Python keywords.
Keywords define the language’s syntax rules and structure, and they cannot be
used as variable names.
o Python has thirty-something keywords (and every now and again improvements
to Python introduce or eliminate one or two):
➢ Programmers generally choose names for their variables that are meaningful to the
human readers of the program — they help the programmer document, or remember,
what the variable is used for.
2.4 Statements
➢ Other than assignment statements, some other kinds of statements are while statements,
for statements, if statements, and import statements. (There are other kinds too!)
➢ When you type a statement on the command line, Python executes it. Statements don’t
produce any result.
Evaluating Expressions
>>> 1 + 1
2
>>> len ("hello")
5
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
➢ In this example, len is a built-in Python function that returns the number of characters
in a string.
➢ We’ve previously seen the print and the type functions, so this is our third example
of a function.
➢ The evaluation of an expression produces a value, which is why expressions can appear
on the right hand side of assignment statements.
➢ A value all by itself is a simple expression, and so is a variable.
>>> 17
17
>>> y = 3.14
>>> x = len("hello")
>>> x
5
>>> y
3.14
➢ Operators are special tokens that represent computations like addition, multiplication and division.
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 tokens +, -, and *, and the use of parenthesis for grouping, mean in Python what
they mean in mathematics.
➢ The asterisk (*) is the token for multiplication, and ** is the token for
exponentiation.
>>> 2 ** 3
8
>>> 3 ** 2
9
➢ 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).
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
➢ In Python three more Python functions, int, float and str, which will (attempt to) convert
their arguments into types int, float and str respectively. We call these type converter
functions.
➢ The int function can take a floating point number or a string, and turn it into an int.
➢ For floating point numbers, it discards the decimal portion of the number — a process
we call truncation towards zero on the number line. For Example:
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
>>> int(3.14)
3
>>> int(3.9999) # This doesn't round to the closest int!
3
>>> int(3.0)
3
>>> int(-3.999) # Note that the result is closer to zero
-3
>>> int(minutes / 60)
10
>>> int("2345") # Parse a string to produce an int
2345
>>> int(17)
17 # It even works if arg is already an int
>>> int("23 bottles")
➢ The type converter float can turn an integer, a float, or a syntactically legal string into a float:
>>>
float(17)
17.0
>>>
float("123.45")
123.45
➢ The type converter str turns its argument into a string:
>>>
str(17)
'17'
>>> str(123.45)
'123.45'
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
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 both Division operators 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 5-2*2 is 1, not 6.
4. Operators with the same precedence are evaluated from left-to-right.
• In algebra we say they are left-associative.
• So in the expression 6-3+2, the subtraction happens first, yielding 3.
• We then add 2 to get the result 5.
• If the operations had been evaluated from right to left, the result would have been 6-
(3+2), which is 1.
• (The acronym PEDMAS could mislead you to thinking that division has higher
precedence than multiplication, and addition is done ahead of subtraction - don’t be
misled. Subtraction and addition are at the same precedence, and the left-to-right rule
applies.)
➢ Due to some historical quirk, an exception to the left-to-right left-associative rule is the exponentiation
operator **, so a useful hint is to always use parentheses to force exactly the order you want when
exponentiation is involved:
➢ The immediate mode command prompt of Python is great for exploring and experimenting with expressions
like this.
In general, you cannot perform mathematical operations on strings, even if the strings look like numbers.
The following are illegal (assuming that message has type string):
➢ The + operator does work with strings, but for strings, the + operator represents concatenation, not
addition. Concatenation means joining the two operands by linking them end-to-end.
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
➢ For example:
fruit1= "banana"
baked_good
2
= " nut bread"
3
print(fruit + baked_good)
➢ The output of this program is banana nut bread.
➢ The space before the word nut is part of the string, and is necessary to produce the space
between the concatenated strings.
➢ The * operator also works on strings; it performs repetition.
➢ For example, 'Fun'*3 is 'FunFunFun'.
➢ One of the operands has to be a string; the other has to be an integer.
2.1 Input
➢ There is a built-in function in Python for getting input from the user:
name
1
= input("Please enter your name: ")
➢ The user of the program can enter the name and click OK, and when this happens the text
that has been entered is returned from the input function, and in this case assigned to
the variable name.
➢ Even if you asked the user to enter their age, you would get back a string like "17".
➢ It would be your job, as the programmer, to convert that string into a int or a float, using the
int or float converter functions we saw earlier.
2.2 Composition
➢ So far, we have looked at the elements of a program — variables, expressions, statements, and
function calls — in isolation, without talking about how to combine them.
➢ One of the most useful features of programming languages is their ability to take small building
blocks and compose them into larger chunks.
➢ For example, we know how to get the user to enter some input, we know how to convert the
string we get into a float, we know how to write a complex expression, and we know how to
print values.
➢ Let’s put these together in a small four-step program that asks the user to input a value for the
radius of a circle, and then computes the area of the circle from the formula
Area = 𝜋𝑅2
3
area = 3.14159 * r**2
print("The area is ", area)
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
➢ Now let’s compose the first two lines into a single line of code, and compose the second two
lines into another line of code.
r = float(
1
input("What is your radius? ") )
2
print("The area is ", 3.14159 * r**2)
➢ If we really wanted to be tricky, we could write it all in one statement:
print("The
1 area is ", 3.14159*float(input("What is your radius?"))**2)
➢ The modulus operator works on integers (and integer expressions) and gives the remainder
when the first number is divided by the second. In Python, the modulus operator is a percent
sign (%).
➢ The syntax is the same as for other operators. It has the same precedence as the multiplication
operator.
4
secs_still_remaining = total_secs % 3600
5 minutes = secs_still_remaining // 60
6 secs_finally_remaining = secs_still_remaining % 60
7
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
Glossary
assignment statement A statement that assigns a value to a name (variable). To the left of the assignment
operator,
=, is a name. To the right of the assignment token is an expression which is evaluated by the Python
interpreter and then assigned to the name. The difference between the left and right hand sides of
the assignment statement is often confusing to new programmers. In the following assignment:
number = number + 1
number plays a very different role on each side of the =. On the right it is a value and makes up
part of the
expression which will be evaluated by the Python interpreter before assigning it to the name on the
left.
assignment token = is Python’s assignment token. Do not confuse it with equals, which is an operator for
comparing values.
composition The ability to combine simple expressions and statements into compound statements and
expressions in order to represent complex computations concisely.
concatenate To join two strings end-to-end.
data type A set of values. The type of a value determines how it can be used in expressions. So far,
the types you have seen are integers (int), floating-point numbers (float), and strings (str).
evaluate To simplify an expression by performing the operations in order to yield a single value.
expression A combination of variables, operators, and values that represents a single result value.
float A Python data type which stores floating-point numbers. Floating-point numbers are stored
internally in two parts: a base and an exponent. When printed in the standard format, they look like
decimal numbers. Beware of rounding errors when you use floats, and remember that they are
only approximate values.
floor division An operator (denoted by the token //) that divides one number by another and yields an
integer, or, if the result is not already an integer, it yields the next smallest integer.
int A Python data type that holds positive and negative whole numbers.
keyword A reserved word that is used by the compiler to parse program; you cannot use keywords like if,
def, and
while as variable names.
modulus operator An operator, denoted with a percent sign ( %), that works on integers and yields the
remainder when one number is divided by another.
operand One of the values on which an operator operates.
operator A special symbol that represents a simple computation like addition, multiplication, or string
concatenation.
rules of precedence The set of rules governing the order in which expressions involving multiple
operators and operands are evaluated.
state snapshot A graphical representation of a set of variables and the values to which they refer, taken at a
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
3.1 Iteration
3.1.1 Assignment
➢ A new assignment makes an existing variable refer to a new value (and stop referring to the old value).
1
airtime_remaining = 15
2
3
print(airtime_remaining)
4 airtime_remaining = 7
print(airtime_remaining)
15
7
➢ Because the first time airtime_remaining is printed, its value is 15, and the second time, its value is 7.
➢ It is especially important to distinguish between an assignment statement and a Boolean expression that
tests for equality.
➢ Because Python uses the equal token (=) for assignment, it is tempting to interpret a statement like a =
b as a Boolean test. Unlike mathematics, it is not!
➢ Remember that the Python token for the equality operator is ==.
➢ Note too that an equality test is symmetric, but assignment is not.
➢ For example, if a == 7 then 7 == a. But in Python, the statement a = 7 is legal and 7 = a is
not.
➢ In Python, an assignment statement can make two variables equal, but because further assignments can
change either of them, they don’t have to stay that way:
1 a=5
2 b = a # After executing this line, a and b are now equal
3
a = 3 # After executing this line, a and b are no longer equal
➢ The third line changes the value of a but does not change the value of b, so they are no longer equal.
➢ In some programming languages, a different symbol is used for assignment, such as <- or :=, to avoid
confusion.
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1
Python Programming [1BPLC105B] 2025-2026
➢ Some people also think that variable was an unfortunae word to choose, and instead we should have
called them assignables.
➢ Python chooses to follow common terminology and token usage, also found in languages like C, C++,
Java, and C#, so we use the tokens = for assignment, == for equality, and we talk of variables.
Prof. Inbalatha .K, Dept. of CSE (AI & ML), Dr.TTIT, KGF 1