Type C: Programming Practice/Knowledge based Questions
1.Write a Python script that asks the user to enter a length in centimetres. If the user enters a negative length, the program should tell the user that the entry is invalid. Otherwise, the program should convert the length to inches and print out the result. There are 2.54 centimetres in an inch. Solution len = int(input("Enter length in cm: ")) if len < 0: print("Invalid input") else: inch = len / 2.54 print(len, "centimetres is equal to", inch, "inches") Output Enter length in cm: 150 150 centimetres is equal to 59.05511811023622 inches 2.A store charges ₹120 per item if you buy less than 10 items. If you buy between 10 and 99 items, the cost is ₹100 per item. If you buy 100 or more items, the cost is ₹70 per item. Write a program that asks the user how many items they are buying and prints the total cost. Solution n = int(input("Enter number of items: ")) cost = 0 if n >= 100 : cost = n * 70 elif n >= 10 : cost = n * 100 else : cost = n * 120 print("Total Cost =", cost) Output Enter number of items: 58 Total Cost = 5800 3.Write a program that reads from user — (i) an hour between 1 to 12 and (ii) number of hours ahead. The program should then print the time after those many hours, e.g., Enter hour between 1-12 : 9 How many hours ahead : 4 Time at that time would be : 1 O'clock Solution hr = int(input("Enter hour between 1-12 : ")) n = int(input("How many hours ahead : ")) s = hr + n if s > 12: s -= 12 print("Time at that time would be : ", s, "O'clock") Output Enter hour between 1-12 : 9 How many hours ahead : 4 Time at that time would be : 1 O'clock 4.Write a program that asks the user for two numbers and prints Close if the numbers are within .001 of each other and Not close otherwise. Solution a = float(input("Enter first number: ")) b = float(input("Enter second number: ")) d=0 if a > b : d=a-b else : d=b-a if d <= 0.001 : print("Close") else : print("Not Close") Output Enter first number: 10.12345 Enter second number: 10.12354 Close 5.A year is a leap year if it is divisible by 4, except that years divisible by 100 are not leap years unless they are also divisible by 400. Write a program that asks the user for a year and prints out whether it is a leap year or not. Solution year = int(input("Enter year: ")) if year % 400 == 0 : print(year, "is a Leap Year") elif year % 100 == 0 : print(year, "is not a Leap Year") elif year % 4 == 0 : print(year, "is a Leap Year") else : print(year, "is not a Leap Year") Output Enter year: 1800 1800 is not a Leap Year 6.Write a program to input length of three sides of a triangle. Then check if these sides will form a triangle or not. (Rule is: a+b>c;b+c>a;c+a>b) Solution a = int(input("Enter first side : ")) b = int(input("Enter second side : ")) c = int(input("Enter third side : ")) if a + b > c and b + c > a and a + c > b : print("Triangle Possible") else : print("Triangle Not Possible") Output Enter first side : 3 Enter second side : 5 Enter third side : 6 Triangle Possible 7.Write a short program to input a digit and print it in words. Solution d = int(input("Enter a digit(0-9): ")) if d == 0 : print("Zero") elif d == 1 : print("One") elif d == 2 : print("Two") elif d == 3 : print("Three") elif d == 4 : print("Four") elif d == 5 : print("Five") elif d == 6 : print("Six") elif d == 7 : print("Seven") elif d == 8 : print("Eight") elif d == 9 : print("Nine") else : print("Invalid Digit") Output Enter a digit(0-9): 6 Six 8.Write a short program to check whether square root of a number is prime or not. Solution import math n = int(input("Enter a number: ")) sr = math.sqrt(n) c=0 for i in range(1, int(sr + 1)) : if (sr % i == 0) : c += 1 if c == 2 : print("Square root is prime") else : print("Square root is not prime") Output Enter a number: 49 Square root is prime 9.Write a short program to print first n odd numbers in descending order. Solution n = int(input("Enter n: ")) x=n*2-1 for i in range(x, 0, -2) : print(i) Output Enter n: 5 9 7 5 3 1 10.Write a short program to print the following series : (i) 1 4 7 10 .......... 40. (ii) 1 -4 7 -10 .......... -40 Solution print("First Series:") for i in range(1, 41, 3) : print(i, end = ' ') print("\nSecond Series:") x=1 for i in range(1, 41, 3) : print(i * x, end = ' ') x *= -1 Output First Series: 1 4 7 10 13 16 19 22 25 28 31 34 37 40 Second Series: 1 -4 7 -10 13 -16 19 -22 25 -28 31 -34 37 -40 11.Write a short program to find average of list of numbers entered through keyboard. Solution sum = count = 0 print("Enter numbers") print("(Enter 'q' to see the average)") while True : n = input() if n == 'q' or n == 'Q' : break else : sum += int(n) count += 1 avg = sum / count print("Average = ", avg) Output Enter numbers (Enter 'q' to see the average) 2 5 7 15 12 q Average = 8.2 12.Write a program to input 3 sides of a triangle and print whether it is an equilateral, scalene or isosceles triangle. Solution a = int(input("Enter first side : ")) b = int(input("Enter second side : ")) c = int(input("Enter third side : ")) if a == b and b == c : print("Equilateral Triangle") elif a == b or b == c or c == a: print("Isosceles Triangle") else : print("Scalene Triangle") Output Enter first side : 10 Enter second side : 5 Enter third side : 10 Isosceles Triangle 13.Write a program to take an integer a as an input and check whether it ends with 4 or 8. If it ends with 4, print "ends with 4", if it ends with 8, print "ends with 8", otherwise print "ends with neither". Solution a = int(input("Enter an integer: ")) if a % 10 == 4 : print("ends with 4") elif a % 10 == 8 : print("ends with 8") else : print("ends with neither") Output Enter an integer: 18 ends with 8 14.Write a program to take N (N > 20) as an input from the user. Print numbers from 11 to N. When the number is a multiple of 3, print "Tipsy", when it is a multiple of 7, print "Topsy". When it is a multiple of both, print "TipsyTopsy". Solution n = int(input("Enter a number greater than 20: ")) if n <= 20 : print("Invalid Input") else : for i in range(11, n + 1) : print(i) if i % 3 == 0 and i % 7 == 0 : print("TipsyTopsy") elif i % 3 == 0 : print("Tipsy") elif i % 7 == 0 : print("Topsy") Output Enter a number greater than 20: 25 11 12 Tipsy 13 14 Topsy 15 Tipsy 16 17 18 Tipsy 19 20 21 TipsyTopsy 22 23 24 Tipsy 25 15.Write a short program to find largest number of a list of numbers entered through keyboard. Solution print("Enter numbers:") print("(Enter 'q' to see the result)") l = input() if l != 'q' and l != 'Q' : l = int(l) while True: n = input() if n == 'q' or n == 'Q' : break n = int(n) if n > l : l=n print("Largest Number =", l) Output Enter numbers: (Enter 'q' to see the result) 3 5 8 2 4 q Largest Number = 8 16.Write a program to input N numbers and then print the second largest number. Solution n = int(input("How many numbers you want to enter? ")) if n > 1 : l = int(input()) # Assume first input is largest sl = int(input()) # Assume second input is second largest if sl > l : t = sl sl = l l=t for i in range(n - 2) : a = int(input()) if a > l : sl = l l=a elif a > sl : sl = a print("Second Largest Number =", sl) else : print("Please enter more than 1 number") Output How many numbers you want to enter? 5 55 25 36 12 18 Second Largest Number = 36 17.Given a list of integers, write a program to find those which are palindromes. For example, the number 4321234 is a palindrome as it reads the same from left to right and from right to left. Solution print("Enter numbers:") print("(Enter 'q' to stop)") while True : n = input() if n == 'q' or n == 'Q' : break n = int(n) t=n r=0 while (t != 0) : d = t % 10 r = r * 10 + d t = t // 10 if (n == r) : print(n, "is a Palindrome Number") else : print(n, "is not a Palindrome Number") Output Enter numbers: (Enter 'q' to stop) 67826 67826 is not a Palindrome Number 4321234 4321234 is a Palindrome Number 256894 256894 is not a Palindrome Number 122221 122221 is a Palindrome Number q 18.Write a complete Python program to do the following : (i) read an integer X. (ii) determine the number of digits n in X. (iii) form an integer Y that has the number of digits n at ten's place and the most significant digit of X at one's place. (iv) Output Y. (For example, if X is equal to 2134, then Y should be 42 as there are 4 digits and the most significant number is 2). Solution x = int(input("Enter an integer: ")) temp = x count = 0 digit = -1 while temp != 0 : digit = temp % 10 count += 1 temp = temp // 10 y = count * 10 + digit print("Y =", y) Output Enter an integer: 2134 Y = 42 19.Write a Python program to print every integer between 1 and n divisible by m. Also report whether the number that is divisible by m is even or odd. Solution m = int(input("Enter m: ")) n = int(input("Enter n: ")) for i in range(1, n) : if i % m == 0 : print(i, "is divisible by", m) if i % 2 == 0 : print(i, "is even") else : print(i, "is odd") Output Enter m: 3 Enter n: 20 3 is divisible by 3 3 is odd 6 is divisible by 3 6 is even 9 is divisible by 3 9 is odd 12 is divisible by 3 12 is even 15 is divisible by 3 15 is odd 18 is divisible by 3 18 is even 20a.Write Python programs to sum the given sequences: 2/9 - 5/13 + 8/17 ...... (print 7 terms) Solution n = 2 #numerator initial value d = 9 #denominator initial value m = 1 #to add/subtract alternate terms sum = 0 for i in range(7) : t=n/d sum += t * m n += 3 d += 4 m *= -1 print("Sum =", sum) Output Sum = 0.3642392586003134 20b.Write Python programs to sum the given sequences: 12 + 32 + 52 + ..... + n2 (Input n) Solution n = int(input("Enter the value of n: ")) i=1 sum = 0 while i <= n : sum += i ** 2 i += 2 print("Sum =", sum) Output Enter the value of n: 9 Sum = 165 21.Write a Python program to sum the sequence: 1 + 1/1! + 1/2! + 1/3! + ..... + 1/n! (Input n) Solution n = int(input("Enter the value of n: ")) sum = 0 for i in range(n + 1) : fact = 1 for j in range(1, i) : fact *= j term = 1 / fact sum += term print("Sum =", sum) Output Sum = 3.708333333333333 22.Write a program to accept the age of n employees and count the number of persons in the following age group: (i) 26 - 35 (ii) 36 - 45 (iii) 46 - 55 Solution n = int(input("Enter the value of n: ")) g1 = g2 = g3 = 0 for i in range(1, n + 1) : age = int(input("Enter employee age: ")) #We have used chained comparison operators if 26 <= age <= 35 : g1 += 1 elif 36 <= age <= 45 : g2 += 1 elif 46 <= age <= 55 : g3 += 1 print("Employees in age group 26 - 35: ", g1) print("Employees in age group 36 - 45: ", g2) print("Employees in age group 46 - 55: ", g3) Output Enter the value of n: 10 Enter employee age: 45 Enter employee age: 53 Enter employee age: 28 Enter employee age: 32 Enter employee age: 34 Enter employee age: 49 Enter employee age: 30 Enter employee age: 38 Enter employee age: 33 Enter employee age: 53 Employees in age group 26 - 35: 5 Employees in age group 36 - 45: 2 Employees in age group 46 - 55: 3 23a.Write programs to find the sum of the following series: x - x2/2! + x3/3! - x4/4! + x5/5! - x6/6! (Input x) Solution x = int(input("Enter the value of x: ")) sum = 0 m=1 for i in range(1, 7) : fact = 1 for j in range(1, i+1) : fact *= j term = x ** i / fact sum += term * m m = m * -1 print("Sum =", sum) Output Enter the value of x: 2 Sum = 0.8444444444444444 23b.Write programs to find the sum of the following series: x + x2/2 + x3/3 + ...... + xn/n (Input x and n both) Solution x = int(input("Enter the value of x: ")) n = int(input("Enter the value of n: ")) sum = 0 for i in range(1, n + 1) : term = x ** i / i sum += term print("Sum =", sum) Output Enter the value of x: 2 Enter the value of n: 5 Sum = 17.066666666666666 24a.Write programs to print the following shapes: * ** *** ** * Solution n = 3 # number of rows # upper half for i in range(n) : for j in range(n, i+1, -1) : print(' ', end = '') for k in range(i+1) : print('*', end = ' ') print() # lower half for i in range(n-1) : for j in range(i + 1) : print(' ', end = '') for k in range(n-1, i, -1) : print('*', end = ' ') print() Output * ** *** ** * 24b.Write programs to print the following shapes: * ** *** ** * Solution n = 3 # number of rows # upper half for i in range(n) : for k in range(i+1) : print('*', end = ' ') print() # lower half for i in range(n-1) : for k in range(n-1, i, -1) : print('*', end = ' ') print() Output * ** *** ** * 24c.Write programs to print the following shapes: * * * * * * * * Solution n = 3 # number of rows # upper half for i in range(1, n+1) : # for loop for initial spaces for j in range(n, i, -1) : print(' ', end = '') #while loop for * and spaces x=1 while x < 2 * i : if x == 1 or x == 2 * i - 1 : print('*', end = '') else : print(' ', end = '') x += 1 print() # lower half for i in range(n-1, 0, -1) : # for loop for initial spaces for j in range(n, i, -1) : print(' ', end = '') #while loop for * and spaces x=1 while x < 2 * i : if x == 1 or x == 2 * i - 1 : print('*', end = '') else : print(' ', end = '') x += 1 print() Output * ** * * ** * 24d.Write programs to print the following shapes: * ** * * * * * * ** * Solution n = 4 # number of row #upper half for i in range(1, n+1) : #while loop for * and spaces x=1 while x < 2 * i : if x == 1 or x == 2 * i - 1 : print('*', end = '') else : print(' ', end = '') x += 1 print() #lower half for i in range(n-1, 0, -1) : #while loop for * and spaces x=1 while x < 2 * i : if x == 1 or x == 2 * i - 1 : print('*', end = '') else : print(' ', end = '') x += 1 print() Output * ** * * * * * * ** * 25a.Write programs using nested loops to produce the following patterns: A AB ABC ABCD ABCDE ABCDEF Solution n=6 for i in range(n) : t = 65 for j in range(i + 1) : print(chr(t), end = ' ') t += 1 print() Output A AB ABC ABCD ABCDE ABCDEF 25b.Write programs using nested loops to produce the following patterns: A BB CCC DDDD EEEEE Solution n=5 t = 65 for i in range(n) : for j in range(i + 1) : print(chr(t), end = ' ') t += 1 print() Output A BB CCC DDDD EEEEE 25c.Write programs using nested loops to produce the following patterns: 0 22 444 6666 88888 Solution for i in range(0, 10, 2): for j in range(0, i + 1, 2) : print(i, end = ' ') print() Output 0 22 444 6666 88888 25d.Write programs using nested loops to produce the following patterns: 2 44 666 8888 Solution for i in range(2, 10, 2) : for j in range(2, i + 1, 2) : print(i, end = ' ') print() Output 2 44 666 8888 26.Write a program using nested loops to produce a rectangle of *'s with 6 rows and 20 *'s per row. Solution for i in range(6) : for j in range(20) : print('*', end = '') print() Output ******************** ******************** ******************** ******************** ******************** ******************** 27.Given three numbers A, B and C, write a program to write their values in an ascending order. For example, if A = 12, B = 10, and C = 15, your program should print out: Smallest number = 10 Next higher number = 12 Highest number = 15 Solution a = int(input("Enter first number: ")) b = int(input("Enter second number: ")) c = int(input("Enter third number: ")) if a < b and a < c : small = a if b < c : middle = b large = c else : middle = c large = b elif b < a and b < c : small = b if a < c : middle = a large = c else : middle = c large = a else : small = c if a < b : middle = a large = b else : middle = b large = a print("Smallest number =", small) print("Next higher number =", middle) print("Highest number =", large) Output Enter first number: 10 Enter second number: 5 Enter third number: 15 Smallest number = 5 Next higher number = 10 Highest number = 15 28.Write a Python script to input temperature. Then ask them what units, Celsius or Fahrenheit, the temperature is in. Your program should convert the temperature to the other unit. The conversions are: F = 9/5C + 32 and C = 5/9 (F 32). Solution temp = float(input("Enter Temperature: ")) unit = input("Enter unit('C' for Celsius or 'F' for Fahrenheit): ") if unit == 'C' or unit == 'c' : newTemp = 9 / 5 * temp + 32 print("Temperature in Fahrenheit =", newTemp) elif unit == 'F' or unit == 'f' : newTemp = 5 / 9 * (temp - 32) print("Temperature in Celsius =", newTemp) else : print("Unknown unit", unit) Output Enter Temperature: 38 Enter unit('C' for Celsius or 'F' for Fahrenheit): C Temperature in Fahrenheit = 100.4 29.Ask the user to enter a temperature in Celsius. The program should print a message based on the temperature: • If the temperature is less than -273.15, print that the temperature is invalid because it is below absolute zero. • If it is exactly -273.15, print that the temperature is absolute 0. • If the temperature is between -273.15 and 0, print that the temperature is below freezing. • If it is 0, print that the temperature is at the freezing point. • If it is between 0 and 100, print that the temperature is in the normal range. • If it is 100, print that the temperature is at the boiling point. • If it is above 100, print that the temperature is above the boiling point. Solution temp = float(input("Enter Temperature in Celsius: ")) if temp < -273.15 : print("Temperature is invalid as it is below absolute zero") elif temp == -273.15 : print("Temperature is absolute zero") elif -273.15 <= temp < 0: print("Temperature is below freezing") elif temp == 0 : print("Temperature is at the freezing point") elif 0 < temp < 100: print("Temperature is in the normal range") elif temp == 100 : print("Temperature is at the boiling point") else : print("Temperature is above the boiling point") Output Enter Temperature in Celsius: -273.15 Temperature is absolute zero 30.Write a program to display all of the integers from 1 up to and including some integer entered by the user followed by a list of each number's prime factors. Numbers greater than 1 that only have a single prime factor will be marked as prime. For example, if the user enters 10 then the output of the program should be: Enter the maximum value to display: 10 1=1 2 = 2 (prime) 3 = 3 (prime) 4 = 2x2 5 = 5 (prime) 6 = 2x3 7 = 7 (prime) 8 = 2x2x2 9 = 3x3 10 = 2x5 Solution import math n = int(input("Enter an integer: ")) for i in range(1, n + 1) : if i == 1: print("1 = 1") else : print(i, "=", end=' ') c=0 for j in range(1, i + 1) : if i % j == 0: c += 1 if c == 2: print(i, "(prime)", end = '') print() else : t=i while t % 2 == 0 : print("2", end='x') t = t // 2 k=3 x = math.ceil(math.sqrt(t)) + 1 while k <= x : while (t % k == 0) : print(k, end='x') t = t // k k += 2 if t > 2 : print(t, end='x') print() Output Enter an integer: 10 1=1 2 = 2 (prime) 3 = 3 (prime) 4 = 2x2x 5 = 5 (prime) 6 = 2x3x 7 = 7 (prime) 8 = 2x2x2x 9 = 3x3x 10 = 2x5x