Page 309 - Computer Science V2.0 Class 11
P. 309

11.4.2 A Number with Digits in Reverse Order
                 Next, let's develop a function called reverseDigits(num) that takes a non-negative integer as an argument and
                 returns a number whose digits are in the opposite order of the argument's digits. For example,  reverseDigits(1234)
                 will return 4321. Before we jump into the coding task, let us understand the process of obtaining a number (say,
                 reverseNum) whose digits are in the opposite order of the argument's digits. Note that 1234 = ((1x10 + 2)x10 + 3)
                 x10+4. So, to build reverseNum, we must compute ((4x10 + 3)x10 + 2)x10+1. For this purpose, we begin with a
                 clean slate, i.e., we initialise reverseNum  as 0. Next, we extract the unit's digit (4) and add it to reverseNum.
                 So, reverseNum becomes 4. Now that we do not require the unit's digit any more, we discard it by setting num =
                 num // 10. Now num is equal to 123. Again, we multiply reverseNum by 10 and add to it the unit's digit (3) from
                 current value of num (123). Thus, reverseNum becomes 43. Again, discarding the units's digit of num, we get num
                 equal to 12. We multiply reverseNum by 10 and add to it the unit's digit (2) from current value of num (12). Thus,
                 reverseNum becomes 432. Now, discarding the units's digit (2) of num (12), we get the num equal to 1. Again, we
                 multiply reverseNum by 10 and add to it the unit's digit (1) from current value of num  (1). Thus, reverseNum
                 becomes 4321. Now, discarding the units's digit of num, we get num equal to 0, which indicates that there are no more
                 digits to be processed and we have been able to build reverseNum as desired.

                 Program 11.6 Write a function reverseDigits(num) to display reverse of a number.

                   01 # Program Objective: To display reverse of a number
                   02 def reverseDigits(num):
                   03     """
                   04     Objective: To find reverse of the number
                   05     Inputs:
                   06 num : number whose reverse has to be returned
                   07     Return value:
                   08          reverseNum : reverse of num
                   09     """
                   10     num1 = num
                   11     reverseNum = 0
                   12     while num > 0:
                   13         remainder = num % 10
                   14         reverseNum = reverseNum * 10 + remainder
                   15         num = num // 10
                   16     return reverseNum
                   17 number = int(input("Enter a number : "))
                   18 reverseNum = reverseDigits(number)
                   19 print("The reverse of ", number, " is :", reverseNum)
                 Sample Output:
                  >>> Enter a number : 1234
                      The reverse of 1234 is : 4321                                               Enter in loop
                 As shown in the syntax for the while statement, it may include
                 an optional else clause. It operates like the else clause in a for         Condition       False
                 statement, i.e., the else clause gets executed on a smooth exit
                 from the while loop. However, if control moves out of the while                 True
                 loop on execution of the break statement, the else clause is
                 ignored.
                                                                                                                else block

                                                                                            Encounter      Body
                                                                                              break
                                                                                no

                                                                                                 yes
                                                                                    Exit from loop


                                                                                                   Looping in Python  295
   304   305   306   307   308   309   310   311   312   313   314