## Objective Type Questions

#### Question 1

Which of the following is not a legal type in Python ?

- Integer
- String
- List
- Generic

**Answer**

Generic

**Reason** — Generic is not a legal type in Python while Integer, String and List are legal data types in Python.

#### Question 2

Which of the following allow you to take input from user ?

- raw_input( )
- enter( )
- eval( )
- input

**Answer**

raw_input( ) and input

**Reason** — raw_input( ) and input() functions allow us to take input from user.

#### Question 3

Which of the following functions will you use to find out the type of a variable ?

- datatype( )
- type( )
- typeof( )
- dtype( )

**Answer**

type( )

**Reason** — The type( ) function is used to find out the type of a variable.

#### Question 4

To convert input received via raw_input( ) of Python 2.x in a numeric type, which of the given functions can be used ?

- convert( )
- float( )
- int( )
- No conversion required as input is already in desired form.

**Answer**

float( ) and int( )

**Reason** — Python offers float( ) and int( ) functions to be used with raw_input() to convert the values received through raw_input() into integer and float types.

#### Question 5

To convert input received via input( ) of Python 2.x in a numeric type, which of the given functions can be used ?

- convert( )
- float( )
- int( )
- No conversion required as input in already in desired form.

**Answer**

No conversion required as input in already in desired form.

**Reason** — The input() evaluates the given input and returns the value accordingly. Thus, no conversion is required as input in already in desired form.

## Theoretical Questions

#### Question 1

How are floating constants represented in Python ? Give examples to support your answer.

**Answer**

Floating constants are represented in Python in two forms — Fractional Form and Exponent form. Examples:

- Fractional Form — 2.0, 17.5, -13.0, -0.00625
- Exponent form — 152E05, 1.52E07, 0.152E08, -0.172E-3

#### Question 2

How are string-literals represented and implemented in Python ?

**Answer**

A string-literal is represented as a sequence of characters surrounded by quotes (single, double or triple quotes). String-literals in Python are implemented using Unicode.

#### Question 3(i)

What will be the output produced by following code fragment ?

```
X = 10
X = X + 10
X = X - 5
print X
X, Y = X - 2, 22
print X, Y
```

**Answer**

##### Output

```
15
13 22
```

##### Explanation

`X = 10`

⇒ assigns an initial value of 10 to X.`X = X + 10`

⇒ X = 10 + 10 = 20. So value of X is now 20.`X = X - 5`

⇒ X = 20 - 5 = 15. X is now 15.`print (X)`

⇒ print the value of X which is 15.`X, Y = X - 2, 22`

⇒ X, Y = 13, 22.`print (X, Y)`

⇒ prints the value of X which is 13 and Y which is 22.

#### Question 3(ii)

What will be the output produced by following code fragment ?

```
first = 2
second = 3
third = first * second
print first, second, third
first = first + second + third
third = second * first
print first, second, third
```

**Answer**

##### Output

```
2 3 6
11 3 33
```

##### Explanation

`first = 2`

⇒ assigns an initial value of 2 to first.`second = 3`

⇒ assigns an initial value of 3 to second.`third = first * second`

⇒ third = 2 * 3 = 6. So variable third is initialized with a value of 6.`print first, second, third`

⇒ prints the value of first, second, third as 2, 3 and 6 respectively.`first = first + second + third`

⇒ first = 2 + 3 + 6 = 11`third = second * first`

⇒ third = 3 * 11 = 33`print first, second, third`

⇒ prints the value of first, second, third as 11, 3 and 33 respectively.

#### Question 3(iii)

What will be the output produced by following code fragment ?

```
side = int(raw_input('side')) #side given as 7
area = side * side
print side, area
```

**Answer**

##### Output

```
7 49
```

##### Explanation

`side = int(input('side') )`

⇒ This statements asks the user to enter the side. We enter 7 as the value of side.`area = side * side`

⇒ area = 7 * 7 = 49.`print (side, area)`

⇒ prints the value of side and area as 7 and 49 respectively.

#### Question 4

What are data types ? How are they important ?

**Answer**

Data types are used to identify the type of data a memory location can hold and the associated operations of handling it. The data that we deal with in our programs can be of many types like character, integer, real number, string, boolean, etc. Hence programming languages including Python provide ways and facilities to handle all these different types of data through data types.

The data types define the capabilities to handle a specific type of data such as memory space it allocates to hold a certain type of data and the range of values supported for a given data type, etc.

#### Question 5

Write instructions to get the following result :

```
Math is Fun so don't be resistant
Just learn the rules, the rules are consistent
And most important, you must be persistent !
Adding fractions, get common denominators.
Multiply by missing factors to get the denominators.
Add numerators only, NOT denominators.
```

Do it in both interactive mode and script mode.

**Answer**

##### Interactive Mode

```
>>> print("Math is Fun so don't be resistant")
Math is Fun so don't be resistant
>>> print("Just learn the rules, the rules are consistent")
Just learn the rules, the rules are consistent
>>> print("And most important, you must be persistent !")
And most important, you must be persistent !
>>> print("")
>>> print("Adding fractions, get common denominators.")
Adding fractions, get common denominators.
>>> print("Multiply by missing factors to get the denominators.")
Multiply by missing factors to get the denominators.
>>> print("Add numerators only, NOT denominators.")
Add numerators only, NOT denominators.
>>>
```

##### Script Mode

##### Solution

```
print("Math is Fun so don't be resistant")
print("Just learn the rules, the rules are consistent")
print("And most important, you must be persistent !")
print("")
print("Adding fractions, get common denominators.")
print("Multiply by missing factors to get the denominators.")
print("Add numerators only, NOT denominators.")
```

##### Output

```
Math is Fun so don't be resistant
Just learn the rules, the rules are consistent
And most important, you must be persistent !
Adding fractions, get common denominators.
Multiply by missing factors to get the denominators.
Add numerators only, NOT denominators.
```

#### Question 6

How many integer types are supported by Python ? Name them.

**Answer**

Two integer types are supported by Python. They are:

- Integers (signed)
- Booleans

#### Question 7

Differentiate between plain integer and long integer.

**Answer**

Plain integers generally use 32 bits (4 bytes) to store a value. Long integers, on the other hand, don't have any size limitation for storing the value, they can grow arbitrarily large subject to available memory.

#### Question 8

Write instructions in interactive mode for the following :

(i) to display sum of 8, 9.0, 2 * 3

(ii) to print sum of 8, 9.0, 2 * 3

**Answer**

(i)

```
>>> 8 + 9.0 + 2 * 3
23.0
```

(ii)

```
>>> print(8 + 9.0 + 2 * 3)
23.0
```

#### Question 9

Write a program that generates the following output :

```
5
10
9
```

Assign value 5 to a variable using assignment operator (=). Multiply it with 2 to generate 10 and subtract 1 to generate 9.

**Answer**

##### Solution

```
a = 5
print(a)
a = a * 2
print(a)
a = a - 1
print(a)
```

##### Output

```
5
10
9
```

#### Question 10

Write a Python program that accepts radius of a circle and prints its area.

**Answer**

##### Solution

```
r = float(input("Enter radius of circle: "))
a = 3.14159 * r * r
print("Area of circle =", a)
```

##### Output

```
Enter radius of circle: 7.5
Area of circle = 176.7144375
```

#### Question 11

Write Python program that accepts marks in 5 subjects and outputs average marks.

**Answer**

##### Solution

```
m1 = int(input("Enter first subject marks: "))
m2 = int(input("Enter second subject marks: "))
m3 = int(input("Enter third subject marks: "))
m4 = int(input("Enter fourth subject marks: "))
m5 = int(input("Enter fifth subject marks: "))
avg = (m1 + m2+ m3+ m4 + m5) / 5;
print("Average Marks =", avg)
```

##### Output

```
Enter first subject marks: 65
Enter second subject marks: 78
Enter third subject marks: 79
Enter fourth subject marks: 80
Enter fifth subject marks: 85
Average Marks = 77.4
```

#### Question 12

Write a program to read a number n and print n^{2}, n^{3} and n^{4}.

**Answer**

##### Solution

```
n = int(input("Enter n: "))
n2, n3, n4 = n ** 2, n ** 3, n ** 4
print("n =", n)
print("n^2 =", n2)
print("n^3 =", n3)
print("n^4 =", n4)
```

##### Output

```
Enter n: 2
n = 2
n^2 = 4
n^3 = 8
n^4 = 16
```

#### Question 13

Write a program to compute simple interest and compound interest.

**Answer**

##### Solution

```
p = float(input("Enter principal: "))
r = float(input("Enter rate: "))
t = int(input("Enter time: "))
si = (p * r * t) / 100
ci = p * ((1 + (r / 100 ))** t) - p
print("Simple interest = ", si)
print("Compound interest = ", ci)
```

##### Output

```
Enter principal: 15217.75
Enter rate: 9.2
Enter time: 3
Simple interest = 4200.098999999999
Compound interest = 4598.357987312007
```

#### Question 14

Write a program to read details like name, class, age of a student and then print the details firstly in same line and then in separate lines.

Make sure to have two blank lines in these two different types of prints.

**Answer**

##### Solution

```
n = input("Enter name of student: ")
c = int(input("Enter class of student: "))
a = int(input("Enter age of student: "))
print("Name:", n, "Class:", c, "Age:", a)
print()
print()
print("Name:", n)
print("Class:", c)
print("Age:", a)
```

##### Output

```
Enter name of student: Kavya
Enter class of student: 11
Enter age of student: 17
Name: Kavya Class: 11 Age: 17
Name: Kavya
Class: 11
Age: 17
```

## Application Oriented Questions

#### Question 1

(a) What will be the output produced by following code fragments ?

(i)

```
a, b = 2, 3
c, b = a, c + 1
print a, b, c
```

(ii)

```
x, y = 2, 6
x, y = y, x + 2
print x, y
```

(b) What will the output produced if we interchange the first two lines of above two codes [given in part (a)], e.g., as shown below for code (i) ? Will it give any error ? Give reason(s).

```
c, b = a, c + 1
a, b = 2, 3
print a, b, c
```

**Answer**

(a)

(i) This code fragment will generate the below error:

```
NameError: name 'c' is not defined
```

**Reason** — The error is generated because in line 2, the variable c is not defined before being used.

(ii)

##### Output

```
6 4
```

##### Explanation

Statement | Value of X | Value of Y | Remark |
---|---|---|---|

x, y = 2, 6 | 2 | 6 | Both x, y are initialized |

x, y = y, x + 2 | 6 | 4 | x = 6, y = 2 + 2 = 4 |

print (x, y) | 6 | 4 | 6 (x), 4 (y) are printed |

(b) When we interchange the first two lines of above codes, we get the following outputs:

(i) It will give the same error as before because even after interchanging first two lines variable C is still used before it is defined.

(ii) Interchanging the first two lines will generate the below error:

```
NameError: name 'y' is not defined
```

**Reason** — The error is generated because now in line 1, the variable y is not defined before being used.

#### Question 2

A bank account contains ₹10,000 and earns interest at the rate of 5 percent per year. The interest is added to the account. After one year the bank account contains the original sum of ₹10,000 plus the interest, which is 5% of ₹10,000, i.e., 10,000 * (5/100).

So, the final account balance is 10000 + 10000 * (5/100) = 10000 * (1 + (5/100)) = 10000 * 1.05.

(a) Write Python code script to calculate the balance in account as per this after one year.

(b) Write Python code script to calculate the balance in account as per this after four years while showing balance after every year.

(c) Write Python script that displays the number of takes for the account balance to be at least double the original balance.

**Answer**

(a) Python code script to calculate the balance in account after one year:

```
p = 10000
r = 5
si = p * r / 100
bal = p + si
print ("Balance = ₹", bal)
```

##### Output

```
Balance = ₹ 10500.0
```

(b) Python code script to calculate the balance in account after four year while showing balance after every year:

```
p = 10000
r = 5
si = p * r / 100
p = p + si
print ("Balance after 1st year = ₹", p)
si = p * r / 100
p = p + si
print ("Balance after 2nd year = ₹", p)
si = p * r / 100
p = p + si
print ("Balance after 3rd year = ₹", p)
si = p * r / 100
p = p + si
print ("Balance after 4th year = ₹", p)
```

##### Output

```
Balance after 1st year = ₹ 10500.0
Balance after 2nd year = ₹ 11025.0
Balance after 3rd year = ₹ 11576.25
Balance after 4th year = ₹ 12155.0625
```

(c) Python code script to display the number of takes for the account balance to be at least double the original balance:

```
p = 10000
r = 5
t = p * 2
c = 0
while p < t:
si = p * r / 100
p = p + si
c = c + 1
print ("No. of takes =", c)
```

##### Output

```
No. of takes = 15
```