0% found this document useful (0 votes)
4 views

Viva QA Python

The document contains a series of Python lab viva questions and answers covering key features of Python, data structures like lists and tuples, string manipulation methods, and control flow statements. It also discusses Python's strengths and weaknesses, built-in functions, and practical coding examples. Overall, it serves as a comprehensive guide for understanding Python programming concepts and syntax.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Viva QA Python

The document contains a series of Python lab viva questions and answers covering key features of Python, data structures like lists and tuples, string manipulation methods, and control flow statements. It also discusses Python's strengths and weaknesses, built-in functions, and practical coding examples. Overall, it serves as a comprehensive guide for understanding Python programming concepts and syntax.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

ARYA Institute of Engineering Technology and Management

Python Lab Viva Questions and Answers


Practical No. 1

Q.1. what are the key features of Python?

If it makes for an introductory language to programming, Python must mean something. These are
its qualities:

 Interpreted
 Dynamically-typed
 Object-oriented
 Concise and simple
 Free
 Has a large community

Q.2. Differentiate between lists and tuples.

The major difference is that a list is mutable, but a tuple is immutable.

Q.3. Explain the ternary operator in Python.

Unlike C++, we don’t have ?: in Python, but we have this:

[on true] if [expression] else [on false]

If the expression is True, the statement under [on true] is executed. Else, that under [on false] is
executed.

Q.4. What are negative indices?

Let’s take a list for this.

1. >>> mylist=[0,1,2,3,4,5,6,7,8]

A negative index, unlike a positive one, begins searching from the right.

1. >>> mylist[-3]

This also helps with slicing from the back:

1. >>> mylist[-6:-1]

[3, 4, 5, 6, 7]
Q.5. Is Python case-sensitive?

A language is case-sensitive if it distinguishes between identifiers like myname and Myname. In


other words, it cares about case- lowercase or uppercase. Let’s try this with Python.

1. >>> myname='Ayushi'
2. >>> Myname

Traceback (most recent call last):

File “<pyshell#3>”, line 1, in <module>

Myname

NameError: name ‘Myname’ is not defined

As we can see, this raised a NameError. This means that Python is indeed case-sensitive.

Q.6. How long can an identifier be in Python?

According to the official Python documentation, an identifier can be of any length. However, PEP 8
suggests that you should limit all lines to a maximum of 79 characters. Also, PEP 20 says ‘readability
counts’. So, a very long identifier will violate PEP-8 and PEP-20.

Apart from that, there are certain rules we must follow to name one:

 It can only begin with an underscore or a character from A-Z or a-z.


 The rest of it can contain anything from the following: A-Z/a-z/_/0-9.
 Python is case-sensitive, as we discussed in the previous question.
 Keywords cannot be used as identifiers.

Q.7. How would you convert a string into lowercase?

We use the lower() method for this.

1. >>> 'AyuShi'.lower()

‘ayushi’

To convert it into uppercase, then, we use upper().

1. >>> 'AyuShi'.upper()

‘AYUSHI’
Also, to check if a string is in all uppercase or all lowercase, we use the methods isupper() and
islower().

1. >>> 'AyuShi'.isupper()

False

1. >>> 'AYUSHI'.isupper()

True

1. >>> 'ayushi'.islower()

True

1. >>> '@yu$hi'.islower()

True

1. >>> '@YU$HI'.isupper()

True

So, characters like @ and $ will suffice for both cases

Also, istitle() will tell us if a string is in title case.

1. >>> 'The Corpse Bride'.istitle()

True

Q.8. What is the pass statement in Python?

There may be times in our code when we haven’t decided what to do yet, but we must type
something for it to be syntactically correct. In such a case, we use the pass statement.

1. >>> def func(*args):


2. pass
3. >>>

Similarly, the break statement breaks out of a loop.

1. >>> for i in range(7):


2. if i==3: break
3. print(i)

1
2

Finally, the continue statement skips to the next iteration.

1. >>> for i in range(7):


2. if i==3: continue
3. print(i)

Practical No. 2

Q.1. Explain help() and dir() functions in Python.

The help() function displays the documentation string and help for its argument.

1. >>> import copy


2. >>> help(copy.copy)

Help on function copy in module copy:

copy(x)

Shallow copy operation on arbitrary Python objects.

The dir() function displays all the members of an object(any kind).

1. >>> dir(copy.copy)

Q.2. How do you get a list of all the keys in a dictionary?

we use the function keys().

1. >>> mydict={'a':1,'b':2,'c':3,'e':5}
2. >>> mydict.keys()

dict_keys([‘a’, ‘b’, ‘c’, ‘e’])

Q.3. What is slicing?


Slicing is a technique that allows us to retrieve only a part of a list, tuple, or string. For this, we use
the slicing operator [].

1. >>> (1,2,3,4,5)[2:4]

(3, 4)

1. >>> [7,6,8,5,9][2:]

[8, 5, 9]

1. >>> 'Hello'[:-1]

‘Hell’

Q.4. How would you declare a comment in Python?

Unlike languages like C++, Python does not have multiline comments. All it has is octothorpe (#).
Anything following a hash is considered a comment, and the interpreter ignores it.

1. >>> #line 1 of comment


2. >>> #line 2 of comment

In fact, you can place a comment anywhere in your code. You can use it to explain your code.

Q.5. How will you check if all characters in a string are alphanumeric?

For this, we use the method isalnum().

Q.6. How will you capitalize the first letter of a string?

Simply using the method capitalize().

1. >>> 'ayushi'.capitalize()

‘Ayushi’

1. >>> type(str.capitalize)

<class ‘method_descriptor’>

However, it will let other characters be.

1. >>> '@yushi'.capitalize()

‘@yushi’

1. >>> 'Ayushi123'.isalnum()
True

1. >>> 'Ayushi123!'.isalnum()

False

Other methods that we have include:

1. >>> '123.3'.isdigit()

False

1. >>> '123'.isnumeric()

True

1. >>> 'ayushi'.islower()

True

1. >>> 'Ayushi'.isupper()

False

1. >>> 'Ayushi'.istitle()

True

1. >>> ' '.isspace()

True

1. >>> '123F'.isdecimal()

False

Q.7. We know Python is all the rage these days. But to be truly accepting of a great
technology, you must know its pitfalls as well. Would you like to talk about this?
Of course. To be truly yourself, you must be accepting of your flaws. Only then can you
move forward to work on them. Python has its flaws too:

 Python’s interpreted nature imposes a speed penalty on it.


 While Python is great for a lot of things, it is weak in mobile computing, and in browsers.
 Being dynamically-typed, Python uses duck-typing (If it looks like a duck, it must be a duck).
This can raise runtime errors.
 Python has underdeveloped database access layers. This renders it a less-than-perfect
choice for huge database applications.
 And then, well, of course. Being easy makes it addictive. Once a Python-coder, always a
Python coder.

Q.8. With Python, how do you find out which directory you are currently in?

To find this, we use the function/method getcwd(). We import it from the module os.

1. >>> import os
2. >>> os.getcwd()

Practical No. 3

Q.1. How do you insert an object at a given index in Python?

Let’s build a list first.

1. >>> a=[1,2,4]

Now, we use the method insert. The first argument is the index at which to insert, the second is the
value to insert.

1. >>> a.insert(2,3)
2. >>> a

[1, 2, 3, 4]

Q.2. And how do you reverse a list?

Using the reverse() method.

1. >>> a.reverse()
2. >>> a

[4, 3, 2, 1]

You can also do it via slicing from right to left:

1. >>> a[::-1]
2. >>> a

[1, 2, 3, 4]

This gives us the original list because we already reversed it once. However, this does not modify the
original list to reverse it.

Q.3. And how do you reverse a list?


Using the reverse() method.

1. >>> a.reverse()
2. >>> a

[4, 3, 2, 1]

You can also do it via slicing from right to left:

1. >>> a[::-1]
2. >>> a

[1, 2, 3, 4]

This gives us the original list because we already reversed it once. However, this does not modify the
original list to reverse it.

Q.4. What is the Python interpreter prompt?


This is the following sign for Python Interpreter:

1. >>>

If you have worked with the IDLE, you will see this prompt.

Q.5. How does a function return values?

A function uses the ‘return’ keyword to return a value. Take a look:

1. >>> def add(a,b):


2. return a+b

Q.6. How would you define a block in Python?

For any kind of statements, we possibly need to define a block of code under them. However,
Python does not support curly braces. This means we must end such statements with colons and
then indent the blocks under those with the same amount.

1. >>> if 3>1:
2. print("Hello")
3. print("Goodbye")

Hello

Goodbye

Q.7. Why do we need break and continue in Python?


Both break and continue are statements that control flow in Python loops. break stops the
current loop from executing further and transfers the control to the next block. continue
jumps to the next iteration of the loop without exhausting it.

Q.8. Will the do-while loop work if you don’t end it with a semicolon?

Python does not support an intrinsic do-while loop. Secondly, to terminate do-while loops is a
necessity for languages like C++.

Q.9. In one line, show us how you’ll get the max alphabetical character from a string.

For this, we’ll simply use the max function.

1. >>> max('flyiNg')

‘y’

The following are the ASCII values for all the letters of this string-

f- 102

l- 108

y- 121

i- 105

N- 78

g- 103

By this logic, try to explain the following line of code-

1. >>> max('fly{}iNg')

‘}’

(Bonus: } – 125)

Practical No 4.

Q.1. What is Python good for?

Python is a jack of many trades, check out Applications of Python to find out more.
Meanwhile, we’ll say we can use it for:

 Web and Internet Development


 Desktop GUI
 Scientific and Numeric Applications
 Software Development Applications
 Applications in Education
 Applications in Business
 Database Access
 Network Programming
 Games, 3D Graphics
 Other Python Applications

Q.2. Can you name ten built-in functions in Python and explain each in brief?

Ten Built-in Functions,

complex()- Creates a complex number.

1. >>> complex(3.5,4)

(3.5+4j)

eval()- Parses a string as an expression.

1. >>> eval('print(max(22,22.0)-min(2,3))')

20

filter()- Filters in items for which the condition is true.

1. >>> list(filter(lambda x:x%2==0,[1,2,0,False]))

[2, 0, False]

ormat()- Lets us format a string.

1. >>> print("a={0} but b={1}".format(a,b))

a=2 but b=3

hash()- Returns the hash value of an object.

1. >>> hash(3.7)

644245917
hex()- Converts an integer to a hexadecimal.

1. >>> hex(14)

‘0xe’

input()- Reads and returns a line of string.

1. >>> input('Enter a number')

Enter a number7

1. ‘7’

len()- Returns the length of an object.

1. >>> len('Ayushi')

locals()- Returns a dictionary of the current local symbol table.

1. >>> locals()

open()- Opens a file.

1. >>> file=open('tabs.txt')

Q.3. What will the following code output?

1. >>> word=’abcdefghij’
2. >>> word[:3]+word[3:]

The output is ‘abcdefghij’. The first slice gives us ‘abc’, the next gives us ‘defghij’.

Q.4. How will you convert a list into a string?

We will use the join() method for this.

1. >>> nums=['one','two','three','four','five','six','seven']
2. >>> s=' '.join(nums)
3. >>> s

‘one two three four five six seven’

Q.5. How will you remove a duplicate element from a list?


We can turn it into a set to do that.

1. >>> list=[1,2,1,3,4,2]
2. >>> set(list)

{1, 2, 3, 4}

Q.6. Can you explain the life cycle of a thread?

 To create a thread, we create a class that we make override the run method of the thread
class. Then, we instantiate it.
 A thread that we just created is in the new state. When we make a call to start() on it, it
forwards the threads for scheduling. These are in the ready state.
 When execution begins, the thread is in the running state.
 Calls to methods like sleep() and join() make a thread wait. Such a thread is in the
waiting/blocked state.
 When a thread is done waiting or executing, other waiting threads are sent for scheduling.
 A running thread that is done executing terminates and is in the dead state.

Q.7. What is a dictionary in Python?


A python dictionary is something I have never seen in other languages like C++ or Java
programming. It holds key-value pairs.

1. >>> roots={25:5,16:4,9:3,4:2,1:1}
2. >>> type(roots)

<class ‘dict’>

1. >>> roots[9]

A dictionary is mutable, and we can also use a comprehension to create it.

1. >>> roots={x**2 for x in range(5,0,-1)}


2. >>> roots

{25: 5, 16: 4, 9: 3, 4: 2, 1: 1}

Q.8. Explain the //, %, and ** operators in Python.

The // operator performs floor division. It will return the integer part of the result on division.

1. >>> 7//2

3
Normal division would return 3.5 here.

Similarly, ** performs exponentiation. a**b returns the value of a raised to the power b.

1. >>> 2**10

1024

Finally, % is for modulus. This gives us the value left after the highest achievable division.

1. >>> 13%7

1. >>> 3.5%1.5

0.5

Practical No. 5

Q.1. What do you know about relational operators in Python.

PYTHON RELATIONAL OPERATORS


< Less Than
> Greater Than
<= Less than or equal to
>= Greater than or equal to
= Equal to
!= Not equal to

Q.2. What are assignment operators in Python?

Python assignment operator


Operator Description
= assign
+= Add and assign
-= Subtract and assign
*= Multiply and assign
/= Divide and assign
%= Modulus and assign
**= Exponent and assign
//= Floor-divide and assign

Q.3. Explain logical operators in Python.


We have three logical operators- and, or, not.

1. >>> False and True

False
1. >>> 7<7 or True

True

1. >>> not 2==2

False
Q.4. What are membership operators?
With the operators ‘in’ and ‘not in’, we can confirm if a value is a member in another.

1. >>> 'me' in 'disappointment'

True

1. >>> 'us' not in 'disappointment'

True
Q.5. Explain identity operators in Python.
The operators ‘is’ and ‘is not’ tell us if two values have the same identity.

1. >>> 10 is '10'

False

1. >>> True is not False

True

Q.6. Finally, tell us about bitwise operators in Python.

Python bitwise operators


Operator Description
& Binary AND
| BINARY OR
^ BINARY XOR
~ BINARY ONE’S COMPLEMENT
<< BINARY LEFT SHIFT
>> BINARY RIGHT SHIFT

Q.7. What data types does Python support?


Python provides us with five kinds of data types:
Numbers – Numbers use to hold numerical values.

1. >>> a=7.0
2. >>>

Strings – A string is a sequence of characters. We declare it using single or double quotes.


1. >>> title="Ayushi's Book"

Lists – A list is an ordered collection of values, and we declare it using square brackets.

1. >>> colors=['red','green','blue']
2. >>> type(colors)

<class ‘list’>
Tuples – A tuple, like a list, is an ordered collection of values. The difference. However, is
that a tuple is immutable. This means that we cannot change a value in it.

1. >>> name=('Ayushi','Sharma')
2. >>> name[0]='Avery'

Traceback (most recent call last):


File “<pyshell#129>”, line 1, in <module>
name[0]=’Avery’
TypeError: ‘tuple’ object does not support item assignment
Dictionary – A dictionary is a data structure that holds key-value pairs. We declare it using
curly braces.

1. >>> squares={1:1,2:4,3:9,4:16,5:25}
2. >>> type(squares)

<class ‘dict’>

1. >>> type({})

<class ‘dict’>
We can also use a dictionary comprehension:

1. >>> squares={x:x**2 for x in range(1,6)}


2. >>> squares

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}


Q.8. What is a docstring?
A docstring is a documentation string that we use to explain what a construct does. We place
it as the first thing under a function, class, or a method, to describe what it does. We declare a
docstring using three sets of single or double-quotes.

1. >>> def sayhi():


2. """
3. The function prints Hi
4. """
5. print("Hi")
6. >>> sayhi()

Hi
To get a function’s docstring, we use its __doc__ attribute.

1. >>> sayhi.__doc__

‘\n\tThis function prints Hi\n\t’


A docstring, unlike a comment, is retained at runtime.

Practical No. 6

Q.1. How would you convert a string into an int in Python?

If a string contains only numerical characters, you can convert it into an integer using the int()
function.

1. >>> int('227')

227

Let’s check the types:

1. >>> type('227')

<class ‘str’>

1. >>> type(int('227'))

<class ‘int’>

Q.2. How do you take input in Python?

For taking input from the user, we have the function input(). In Python 2, we had another function
raw_input().

The input() function takes, as an argument, the text to be displayed for the task:

1. >>> a=input('Enter a number')

Enter a number7

But if you have paid attention, you know that it takes input in the form of a string.

1. >>> type(a)

<class ‘str’>
Multiplying this by 2 gives us this:

1. >>> a*=2
2. >>> a

’77’

So, what if we need to work on an integer instead?

We use the int() function for this.

1. >>> a=int(input('Enter a number'))

Enter a number7

Now when we multiply it by 2, we get this:

1. >>> a*=2
2. >>> a

14

Q.3. What is a function?

When we want to execute a sequence of statements, we can give it a name. Let’s define a function
to take two numbers and return the greater number.

1. >>> def greater(a,b):


2. return a is a>b else b
3. >>> greater(3,3.5)

3.5

Q.4. What is recursion?


When a function makes a call to itself, it is termed recursion. But then, in order for it to avoid
forming an infinite loop, we must have a base condition.
Let’s take an example.

1. >>> def facto(n):


2. if n==1: return 1
3. return n*facto(n-1)
4. >>> facto(4)

24

Q.5. What does the function zip() do?

One of the less common functions with beginners, zip() returns an iterator of tuples.
1. >>> list(zip(['a','b','c'],[1,2,3])

[(‘a’, 1), (‘b’, 2), (‘c’, 3)]

Here, it pairs items from the two lists and creates tuples with those. But it doesn’t have to be lists.

1. >>> list(zip(('a','b','c'),(1,2,3)))

[(‘a’, 1), (‘b’, 2), (‘c’, 3)]

Q.6. How do you calculate the length of a string?

This is simple. We call the function len() on the string we want to calculate the length of.

1. >>> len('Ayushi Sharma')

13

Q.7. Explain Python List Comprehension.


The list comprehension in python is a way to declare a list in one line of code. Let’s take a
look at one such example.

1. >>> [i for i in range(1,11,2)]

[1, 3, 5, 7, 9]

1. >>> [i*2 for i in range(1,11,2)]

[2, 6, 10, 14, 18]

Q.8. How do you get all values from a Python dictionary?

We saw previously, to get all keys from a dictionary, we make a call to the keys() method. Similarly,
for values, we use the method values().

1. >>> 'd' in {'a':1,'b':2,'c':3,'d':4}.values()

False

1. >>> 4 in {'a':1,'b':2,'c':3,'d':4}.values()

True

Practical No. 7

Q.1. What if you want to toggle case for a Python string?

We have the swapcase() method from the str class to do just that.
1. >>> 'AyuShi'.swapcase()

‘aYUsHI’

Questions 50 through 52 assume the string ‘I love Python’. You need to do the needful.

Q.2. Write code to print only upto the letter t.

1. >>> i=0
2. >>> while s[i]!='t':
3. print(s[i],end=’’)
4. i+=1

I love Py

Q.3. Write code to print everything in the string except the spaces.

1. >>> for i in s:
2. if i==' ': continue
3. print(i,end='')

IlovePython

Q.4. Now, print this string five times in a row.

1. >>> for i in range(6):


2. print(s)

I love Python
I love Python
I love Python
I love Python
I love Python
I love Python

Q.5. What is the purpose of bytes() in Python?


bytes() is a built-in function in Python that returns an immutable bytes object. Let’s take an
example.

1. >>> bytes([2,4,8])

b’\x02\x04\x08′
1. >>> bytes(5)

b’\x00\x00\x00\x00\x00′

1. >>> bytes('world','utf-8')

b’world’

Q.6. What is a control flow statement?


A Python program usually starts to execute from the first line. From there, it moves through
each statement just once and as soon as it’s done with the last statement, it transactions the
program. However, sometimes, we may want to take a more twisted path through the code.
Control flow statements let us disturb the normal execution flow of a program and bend it to
our will

Q.7. Create a new list to convert the following list of number strings to a list of numbers.
nums=[‘22’,’68’,’110’,’89’,’31’,’12’]
We will use the int() function with a list comprehension to convert these strings into integers
and put them in a list.

1. >>> [int(i) for i in nums]

[22, 68, 110, 89, 31, 12]

Q.8. Given the first and last names of all employees in your firm, what data type will
you use to store it?
I can use a dictionary to store that. It would be something like this-
{‘first_name’:’Ayushi’,’second_name’:’Sharma’

Practical No. 8

Q.1. How would you work with numbers other than those in the decimal number
system?
With Python, it is possible to type numbers in binary, octal, and hexadecimal.
Binary numbers are made of 0 and 1. To type in binary, we use the prefix 0b or 0B.

1. >>> int(0b1010)

10
To convert a number into its binary form, we use bin().

1. >>> bin(0xf)
‘0b1111’
Octal numbers may have digits from 0 to 7. We use the prefix 0o or 0O.

1. >>> oct(8)

‘0o10’
Hexadecimal numbers may have digits from 0 to 15. We use the prefix 0x or 0X.

1. >>> hex(16)

‘0x10’

1. >>> hex(15)

‘0xf’
Q.2. What does the following code output?

1. >>> def extendList(val, list=[]):


2. list.append(val)
3. return list
4. >>> list1 = extendList(10)
5. >>> list2 = extendList(123,[])
6. >>> list3 = extendList('a')
7. >>> list1,list2,list3

([10, ‘a’], [123], [10, ‘a’])

You’d expect the output to be something like this:


([10],[123],[‘a’])
Well, this is because the list argument does not initialize to its default value ([]) every time
we make a call to the function. Once we define the function, it creates a new list. Then,
whenever we call it again without a list argument, it uses the same list. This is because it
calculates the expressions in the default arguments when we define the function, not when we
call it.

Q.3. How many arguments can the range() function take?

The range() function in Python can take up to 3 arguments. Let’s see this one by one.

a. One argument

When we pass only one argument, it takes it as the stop value. Here, the start value is 0, and the
step value is +1.

1. >>> list(range(5))

[0, 1, 2, 3, 4]
1. >>> list(range(-5))

[]

1. >>> list(range(0))

[]

b. Two arguments

When we pass two arguments, the first one is the start value, and the second is the stop value.

1. >>> list(range(2,7))

[2, 3, 4, 5, 6]

1. >>> list(range(7,2))

[]

1. >>> list(range(-3,4))

[-3, -2, -1, 0, 1, 2, 3]

c. Three arguments

Here, the first argument is the start value, the second is the stop value, and the third is the step
value.

1. >>> list(range(2,9,2))

[2, 4, 6, 8]

1. >>> list(range(9,2,-1))

[9, 8, 7, 6, 5, 4, 3]

Q.4. What is PEP 8?

PEP 8 is a coding convention that lets us write more readable code. In other words, it is a set of
recommendations.

Q.5. How is Python different from Java


Q.6. What is the best code you can write to swap two numbers?

I can perform the swapping in one statement.

1. >>> a,b=b,a

Here’s the entire code, though-

1. >>> a,b=2,3
2. >>> a,b=b,a
3. >>> a,b

(3, 2)

Q.7. How can you declare multiple assignments in one statement?

There are two ways to do this:

First –

1. >>> a,b,c=3,4,5 #This assigns 3, 4, and 5 to a, b, and c respectively

Second –

1. >>> a=b=c=3 #This assigns 3 to a, b, and c

Q.8. If you are ever stuck in an infinite loop, how will you break out of it?

For this, we press Ctrl+C. This interrupts the execution. Let’s create an infinite loop to demonstrate
this.
1. >>> def counterfunc(n):
2. while(n==7):print(n)
3. >>> counterfunc(7)

Traceback (most recent call last):

File “<pyshell#332>”, line 1, in <module>

counterfunc(7)

File “<pyshell#331>”, line 2, in counterfunc


while(n==7):print(n)

KeyboardInterrupt

Practical No. 9

Q.1. How do we execute Python?

Python files first compile to bytecode. Then, the host executes them.

Q.2. Explain Python’s parameter-passing mechanism.

To pass its parameters to a function, Python uses pass-by-reference. If you change a parameter
within a function, the change reflects in the calling function. This is its default behavior. However,
when we pass literal arguments like strings, numbers, or tuples, they pass by value. This is because
they are immutable.

Q.3. What is the with statement in Python?

The with statement in Python ensures that cleanup code is executed when working with unmanaged
resources by encapsulating common preparation and cleanup tasks. It may be used to open a file, do
something, and then automatically close the file at the end. It may be used to open a database
connection, do some processing, then automatically close the connection to ensure resources are
closed and available for others. with will cleanup the resources even if an exception is thrown. This
statement is like the using statement in C#.
Consider you put some code in a try block, then in the finally block, you close any resources used.
The with statement is like syntactic sugar for that.

The syntax of this control-flow structure is:

with expression [as variable]:


….with-block

1. >>> with open('data.txt') as data:


2. #processing statements

Q.4. How is a .pyc file different from a .py file?

While both files hold bytecode, .pyc is the compiled version of a Python file. It has platform-
independent bytecode. Hence, we can execute it on any platform that supports the .pyc format.
Python automatically generates it to improve performance(in terms of load time, not speed).

Q.5. What makes Python object-oriented?


Python is object-oriented because it follows the Object-Oriented programming paradigm. This is a
paradigm that revolves around classes and their instances (objects). With this kind of programming,
we have the following features:

 Encapsulation
 Abstraction
 Inheritance
 Polymorphism
 Data hiding

Q.6. How many types of objects does Python support?

Objects in Python are mutable and immutable.

Immutable objects- Those which do not let us modify their contents. Examples of these will be
tuples, booleans, strings, integers, floats, and complexes. Iterations on such objects are faster.

1. >>> tuple=(1,2,4)
2. >>> tuple

(1, 2, 4)

1. >>> 2+4j

(2+4j)

Mutable objects – Those that let you modify their contents. Examples of these are lists, sets, and
dicts. Iterations on such objects are slower.

1. >>> [2,4,9]

[2, 4, 9]

1. >>> dict1={1:1,2:2}
2. >>> dict1

{1: 1, 2: 2}

While two equal immutable objects’ reference variables share the same address, it is possible to
create two mutable objects with the same content.

Practical No. 10

Q.1.Why is it called Python?


Ans: When he began implementing Python, Guido van Rossum was also reading the
published scripts from “Monty Python‘s Flying Circus”, a BBC comedy series from the
1970s. Van Rossum thought he needed a name that was short, unique, and slightly
mysterious, so he decided to call the language Python.
Q.2.What is the interpreter in Python?
Ans: An interpreter is a program that reads and executes code. This includes source code,
pre-compiled code, and scripts. Common interpreters include Perl, Python, and
Ruby interpreters, which execute Perl, Python, and Ruby code respectivel

Q.3.What does a python do?


Ans: Python is a general-purpose programming language typically used for web
development. … SQLite is one free lightweight database commonly used
by Python programmers to store data. Many highly trafficked websites, such as YouTube,
are created using Python.

Q.4.What is the purpose of PYTHONHOME environment variable?


Ans: PYTHONHOME − It is an alternative module search path. It is usually embedded in the
PYTHONSTARTUP or PYTHONPATH directories to make switching module libraries easy.

Q.5.What is the purpose of PYTHONCASEOK environment variable?


Ans: PYTHONCASEOK − It is used in Windows to instruct Python to find the first case-
insensitive match in an import statement. Set this variable to any value to activate it.

Q.6.What is the purpose of PYTHONSTARTUP environment variable?


Ans: PYTHONSTARTUP – It contains the path of an initialization file containing Python
source code. It is executed every time you start the interpreter. It is named as .pythonrc.py in
Unix and it contains commands that load utilities or modify PYTHONPATH.

Q.7.What is the purpose of PYTHONPATH environment variable?


Ans: PYTHONPATH – It has a role similar to PATH. This variable tells the Python
interpreter where to locate the module files imported into a program. It should include the
Python source library directory and the directories containing Python source code.
PYTHONPATH is sometimes preset by the Python installer.

Q.8.If given the first and last names of bunch of employees how would you store it and what
datatype?

Ans: best stored in a list of dictionaries..


dictionary format: {‘first_name’:’Ayush’,’last_name’:’Goel’}

You might also like