Welcome, guest | Sign In | My Account | Store | Cart
```#On the name of ALLAH and may the blessing and peace of Allah
#be upon the Messenger of Allah Mohamed Salla Allahu Aliahi Wassalam.
#Author : Fouad Teniou
#Date : 13/01/09
#version :2.4

import random

class NegativeNumberError(ArithmeticError):
""" attempted imporper operation on negative number"""

pass

class ZeroNumberException(ArithmeticError):
""" attempted operation on zero with an agreed solution"""

pass

def errors(number):
""" Raises NegativeNumberError if number less than 0, and
raises ZeroNumberException if number is equal to 0."""

if number < 0:
raise NegativeNumberError,\
"\n<The number must be greater or equal to 0 \n"
elif number == 0:
raise ZeroNumberException,\
"\n<It is agreed per convention that 0!= 1 \n"
elif number >0:
pass

return number

while 1:
#get users answer to use Factorial program or exit the while loop
Answer = raw_input("\n<Would you like to use Factorial program, yes or no?:\t")

if Answer == "yes":

print '\n\t\t\t','','\5'*49
print '\t\t\t\t  Welcome to Factorial n! Program'
print '\t\t\t','','\5'*49,'\n'

try:
#get users entered numbers and compute factorial
userValue = float(raw_input('<Please enter a number :\t'))
errors(userValue)

Y=random.randrange(int(userValue)+1)

mult = lambda d:reduce(lambda x,y:x*y,range(1,int(Y)+1))

print '\n<A random list of factorial between 0 and %s will be displayed' % int(userValue)
print '\n\t\t',str(0)+'!=',int(1),'\n'
for Y in range(1,int(Y)+1):
print '\n\t\t',str(Y)+'!=',mult(int(Y)),'\n'

#Factorial raise ValueError if input is not numerical
except ValueError:
print "\n<The entered value is not a number"

#Factorial raises Negative number exception
except NegativeNumberError,exception:
print exception

#Factorial raises zero number exception
except ZeroNumberException,exception:
print exception

elif Answer == "no":
break

#############################################################################
#c:\hp\bin\Python>python "C:\Documents\Programs\classes\Factorial7
#
#<Would you like to use Factorial program, yes or no?:   yes
#
#                         ?????????????????????????????????????????????????
#                                  Welcome to Factorial n! Program
#                         ?????????????????????????????????????????????????
#
#<Please enter a number :        7
#
#<A random list of factorial between 0 and 7 will be displayed
#
#                0!= 1
#
#
#                1!= 1
#
#
#                2!= 2
#
#
#<Would you like to use Factorial program, yes or no?:   yes
#
#                         ?????????????????????????????????????????????????
#                                  Welcome to Factorial n! Program
#                         ?????????????????????????????????????????????????
#
#<Please enter a number :        -7
#
#"\n<The number must be greater or equal to 0 \n"
#
#
#<Would you like to use Factorial program, yes or no?:   yes
#
#                         ?????????????????????????????????????????????????
#                                  Welcome to Factorial n! Program
#                         ?????????????????????????????????????????????????
#
#<Please enter a number :        0
#
#<It is agreed per convention that 0!= 1
#
#
#<Would you like to use Factorial program, yes or no?:   yes
#
#                         ?????????????????????????????????????????????????
#                                  Welcome to Factorial n! Program
#                         ?????????????????????????????????????????????????
#
#<Please enter a number :        test
#
#<The entered value is not a number
#
#<Would you like to use Factorial program, yes or no?:   yes
#
#                         ?????????????????????????????????????????????????
#                                  Welcome to Factorial n! Program
#                         ?????????????????????????????????????????????????
#
#<Please enter a number :        7
#
#<A random list of factorial between 0 and 7 will be displayed
#
#                0!= 1
#
#
#                1!= 1
#
#
#                2!= 2
#
#
#                3!= 6
#
#
#               4!= 24
#
#
#                5!= 120
#
#
#<Would you like to use Factorial program, yes or no?:   no
#
#c:\hp\bin\Python>
########################### Factorial ref FT (2 D A Missr)
#########################################################################################

#Version : Python 3.2

#import random
#from functools import reduce

#class NegativeNumberError(ArithmeticError):
#    """ attempted imporper operation on negative number"""
#
#    pass

#class ZeroNumberException(ArithmeticError):
#    """ attempted operation on zero with an agreed solution"""
#
#    pass
#
#def errors(number):
#    """ Raises NegativeNumberError if number less than 0, and
#    raises ZeroNumberException if number is equal to 0."""
#
#    if number < 0:
#        raise NegativeNumberError("\n<The number must be greater or equal to 0 \n")
#    elif number == 0:
#        raise ZeroNumberException("\n<It is agreed per convention that 0!= 1 \n")
#    elif number >0:
#        pass
#
#    return number
#while 1:
#    #get users answer to use Factorial program or exit the while loop
#    Answer = input("\n<Would you like to use Factorial program, yes or no?:\t")
#    if Answer == "yes":
#
#        print('\n\t\t\t','','\5'*49)
#        print('\t\t\t\t  Welcome to Factorial n! Program')
#        print('\t\t\t','','\5'*49,'\n')
#
#        try:
#            #get users entered numbers and coompute factorial
#            userValue = float(input('<Please enter a number :\t'))
#
#            errors(userValue)
#            Y=random.randrange(int(userValue)+1)
#            mult = lambda d:reduce(lambda x,y:x*y,list(range(1,int(Y)+1)))
#
#            print('\n<A random list of factorial between 0 and %s will be displayed' % #int(userValue))
#            print('\n\t\t',str(0)+'!=',int(1),'\n')
#            for Y in range(1,int(Y)+1):
#                print('\n\t\t',str(Y)+'!=',mult(int(Y)),'\n')
#
#        #Factorial raise ValueError if input is not numerical
#        except ValueError:
#            print("\n<The entered value is not a number")
#
#        #Factorial raises Negative number exception
#        except NegativeNumberError as exception:
#            print(exception)
#
#        #Factorial raises zero number exception
#        except ZeroNumberException as exception:
#            print(exception)
#
#    elif Answer == "no":
#        break
```

#### Diff to Previous Revision

```--- revision 3 2009-01-17 04:16:16
+++ revision 4 2011-01-27 12:40:22
@@ -1,4 +1,5 @@
-#On the name of ALLAH
+#On the name of ALLAH and may the blessing and peace of Allah
+#be upon the Messenger of Allah Mohamed Salla Allahu Aliahi Wassalam.
#Author : Fouad Teniou
#Date : 13/01/09
#version :2.4
@@ -155,4 +156,68 @@
#
#c:\hp\bin\Python>
########################### Factorial ref FT (2 D A Missr)
-#
+#########################################################################################
+
+#Version : Python 3.2
+
+#import random
+#from functools import reduce
+
+#class NegativeNumberError(ArithmeticError):
+#    """ attempted imporper operation on negative number"""
+#
+#    pass
+
+#class ZeroNumberException(ArithmeticError):
+#    """ attempted operation on zero with an agreed solution"""
+#
+#    pass
+#
+#def errors(number):
+#    """ Raises NegativeNumberError if number less than 0, and
+#    raises ZeroNumberException if number is equal to 0."""
+#
+#    if number < 0:
+#        raise NegativeNumberError("\n<The number must be greater or equal to 0 \n")
+#    elif number == 0:
+#        raise ZeroNumberException("\n<It is agreed per convention that 0!= 1 \n")
+#    elif number >0:
+#        pass
+#
+#    return number
+#while 1:
+#    #get users answer to use Factorial program or exit the while loop
+#    Answer = input("\n<Would you like to use Factorial program, yes or no?:\t")
+#    if Answer == "yes":
+#
+#        print('\n\t\t\t','','\5'*49)
+#        print('\t\t\t\t  Welcome to Factorial n! Program')
+#        print('\t\t\t','','\5'*49,'\n')
+#
+#        try:
+#            #get users entered numbers and coompute factorial
+#            userValue = float(input('<Please enter a number :\t'))
+#
+#            errors(userValue)
+#            Y=random.randrange(int(userValue)+1)
+#            mult = lambda d:reduce(lambda x,y:x*y,list(range(1,int(Y)+1)))
+#
+#            print('\n<A random list of factorial between 0 and %s will be displayed' % #int(userValue))
+#            print('\n\t\t',str(0)+'!=',int(1),'\n')
+#            for Y in range(1,int(Y)+1):
+#                print('\n\t\t',str(Y)+'!=',mult(int(Y)),'\n')
+#
+#        #Factorial raise ValueError if input is not numerical
+#        except ValueError:
+#            print("\n<The entered value is not a number")
+#
+#        #Factorial raises Negative number exception
+#        except NegativeNumberError as exception:
+#            print(exception)
+#
+#        #Factorial raises zero number exception
+#        except ZeroNumberException as exception:
+#            print(exception)
+#
+#    elif Answer == "no":
+#        break
```