# The Joy of Computing Using Python NPTEL Assignment 6 Answers

Are you looking for The Joy of Computing Using Python NPTEL Week 6 Answers? You’ve come to the right place! Access the latest and most accurate solutions for your Assignment 6 in The Joy of Computing Using Python course

## The Joy of Computing Using Python NPTEL Week 6 Answers (July-Dec 2024)

1. If n is a positive integer, what is the output of the function given input n,

Sum of numbers from 1 to n
Sum of numbers from 1 to n-1
n-1
n

2. Which of the following are true about recursion?
Recursion is a process in which a function calls itself as a subroutine.
Recursion is a better alternative for performing repetitive tasks compared to iteration.
Recursion requires more resources compared to iteration.

Answer: Recursion is a process in which a function calls itself as a subroutine.
Recursion requires more resources compared to iteration.

3. What is the output of following code ?

10
8
5
Error

4. The letter ‘e’ is the most frequently occurring letter in the English language. Suppose we apply a Substitution Cipher where ‘e’ is mapped to ‘a’, and all other letters are uniquely mapped to different letters. If we encrypt a very long English storybook using this cipher, will the frequency of ‘a’ be the highest in the encrypted text?

Yes, it would be same as ’e’ in the original text
Yes, it would be higher than ’e’ in the original text.
No, it would be lower than ’e’ in the original text.
No, we cannot predict

Answer: Yes, it would be same as ’e’ in the original text

5. Could we check frequency of letters in a long ciphertext and map them to frequency of letters in English to decrypt the message?

Yes, it is possible.
No, it is not possible.

6. What are drawbacks of using frequency analysis to decrypt a message that has been encrypted using Substitution Cipher?
It will not work if the cipher text is too small.
It works flawlessly.
It will not work if the encrypted text was previously encrypted using a different cipher, which could have removed patterns in common English.
The frequency analysis method doesn’t work at all for Substitution Cipher

Answer: It will not work if the cipher text is too small.
It will not work if the encrypted text was previously encrypted using a different cipher, which could have removed patterns in common English.

7. If variable dict name is a non-empty dictionary, what does dict name.keys() return?
Returns nothing, but prints all the keys in the dictionary.
Returns a list of all the keys in the dictionary.
Returns a list of all the values in the dictionary.
Returns a list of all the items in the dictionary

Answer: Returns a list of all the keys in the dictionary.

8. Is Ceaser Cipher a type of Substitution Cipher?
Yes
No

9. What is the consequence of not having a base case in a recursive function?
The function will run infinitely.
The function will run only once.
The function will not run at all.
The function will run only for a fixed number of times.

Answer: The function will run infinitely.

10. What are the number of possible final lines when someone wins, in a game of TicTac-Toe?
3
8
9
4

## The Joy of Computing Using Python NPTEL Week 6 Answers (JAN-APR 2024)

Course Name:  The Joy of Computing using Python

These are the Joy of Computing using Python Assignment 6 Answers

Q1. What is the output of following code:
14930352
75025
610
None of the above

Q2. Which method in Python is used to convert lowercase letters in a string to uppercase?
upper()
capitalize()
casefold()
swapcase()

These are the Joy of Computing using Python Assignment 6 Answers

Q3. The “Min Max” strategy, often referred to as the minimax algorithm, is a decision-making algorithm used in game theory and artificial intelligence. It’s commonly employed in two-player games with alternate turns and perfect information, such as chess or tic-tac-toe. What is the primary objective of the min max algorithm?
Maximizing the player’s score
Minimizing the opponent’s score
Minimizing the maximum possible loss
Maximizing the number of moves

Answer: Minimizing the maximum possible loss

Q4. Typecasting refers to the conversion of one data type to another. Python provides several built-in functions for typecasting, such as int(), float(), str(), list(), tuple(), set(), and dict() among others, to convert between different data types. What would be the output of the following code?
123
ValueError
SyntaxError
NameError

These are the Joy of Computing using Python Assignment 6 Answers

Q5. What term is used in programming languages when a function calls itself?
Self-referencing
Iteration
Recursion
Circular referencing

Q6. Consider the following snippet of code.
If L is a non-empty list of positive integers, which of the following statements is correct about the recursive function func(L)?

It returns the total number of odd elements in the list L
It returns the total number of even elements in the list L
It returns the sum of the even elements in the list L
It returns the sum of the odd elements in the list L

Answer: It returns the total number of even elements in the list L

These are the Joy of Computing using Python Assignment 6 Answers

Q7. Consider the following snippet of code.
If L is a non-empty list of positive integers, which of the following statements is correct about the recursive function func(L)?

It returns the total number of odd elements in the list L
It returns the total number of even elements in the list L
It returns the sum of the even elements in the list L
It returns sum of the odd elements in the list L

Answer: It returns sum of the odd elements in the list L

Q8. What purpose does a base case serve in recursive functions?
To make the function run faster
To eliminate the need for additional functions
To prevent infinite recursion and ensure termination
To enable the function to handle complex calculations

Answer: To prevent infinite recursion and ensure termination

These are the Joy of Computing using Python Assignment 6 Answers

Q9. What is the value returned by f(10000)?

Q10. What is the value returned by f(-8)?

These are the Joy of Computing using Python Assignment 6 Answers

### Programming Assignment

Question 1

The distance between two letters in the English alphabet is one more than the number of letters between them. Alternatively, it can be defined as the number of steps needed to move from the alphabetically smaller letter to the larger letter. This is always a non-negative integer. For example:
The distance between two words is defined as follows:
It is -1, if the words are f unequal lengths.
If the word-lengths are equal, it is the sum of the distances between letters at corresponding positions in the words. For example:
​dword​(dog,cat)=dletter​(d,c)+dletter​(o,a)+dletter​(g,t)=1+14+13=28

Write a function named distance that accepts two words as arguments and returns the distance between them.
You do not have to accept input from the user or print output to the console. You just have to write the function definition.

Solution:

``````def distance(word1, word2):
if len(word1) != len(word2):
return(-1)

dis = 0
for i in range(len(word1)):
dis += abs(ord(word1[i]) - ord(word2[i]))

return(dis)``````

These are the Joy of Computing using Python Assignment 6 Answers

Question 2

P is a dictionary of father-son relationships that has the following structure: for any key in the dictionary, its corresponding value is the father of key.

Solution:

``````def ancestry(P, present, past):
if present == past:
return([present])

if present not in P:
return(None)
ancestral_chains = ancestry(P, P[present], past)
if ancestral_chains:
return([present] + ancestral_chains)
return(None)``````

These are the Joy of Computing using Python Assignment 6 Answers

Question 3

Fibonacci is a young resident of the Italian city of Pisa. He spends a lot of time visiting the Leaning Tower of Pisa, one of the iconic buildings in the city, that is situated close to his home. During all his visits to the tower, he plays a strange game while climbing the marble steps of the tower.
You do not have to accept input from the user or print output to the console. You just have to write the function definition.

Solution:

``````def steps(n):
if n <= 0:
return 0
elif n == 1:
return 1
elif n == 2:
return 2
elif n == 3:
return 4
one_steps = steps(n-1)
two_steps = steps(n-2)
three_steps = steps(n-3)
return(one_steps + two_steps + three_steps)``````

These are the Joy of Computing using Python Assignment 6 Answers

## The Joy of Computing Using Python NPTEL Week 6 Answers (July-Dec 2023)

Course Name:  The Joy of Computing using Python

These are the Joy of Computing using Python Assignment 6 Answers

Q1. What will be the output of the following code?
Shift every letter in a given word by value.
Shift every letter in a given word by 1.
Shift every letter in a given word by 26.
Returns the same word.

Answer: Shift every letter in a given word by value.

Q2. In the list L = [4,6,7,4,6,2,1], What is the index of element ‘7’?
0
1
2
3

Q3. Which of the following is true about recursion?
Recursion always performs better than non-recursive code.
Recursive code is easier to debug.
The base case is necessary for recursion.
Recursive code can be shorter than non-recursive code

These are the Joy of Computing using Python Assignment 6 Answers

Q4. What will be the output of the following program?
Calculating sum of first n terms.
Calculating product of first n terms.
Calculating power of first n terms.
Calculating sum of last n terms.

Answer: Calculating product of first n terms.

Q5. In Caesar cipher,the mediator needs to make maximum of how many trails to break the code?
1
26
no trail needed
10