Feb-28-2024, 08:22 AM
hi
in the below code:
in the above code,the line (if not n >= 0:):
why n<0 has been not used?namely, why it is not written as if n<0:?
is there any profit from using not?plz, explain.
in the line( if n+1 == n: ), for large value of n as 1e100, this is True and if block is runned.
why for a very large value of n, this condition is True? plz, explain.
in the above subject, what is the smallest value for n that the condition is satisfied? how the value is obtained?
last question:
What is the difference or profit of using not 3==2 with respect to (3 !=2) using in if statement?
thanks
in the below code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
""" This is the "example" module. The example module supplies one function, factorial(). For example, >>> factorial(5) 120 """ def factorial(n): """Return the factorial of n, an exact integer >= 0. >>> [factorial(n) for n in range(6)] [1, 1, 2, 6, 24, 120] >>> factorial(30) 265252859812191058636308480000000 >>> factorial(-1) Traceback (most recent call last): ... ValueError: n must be >= 0 Factorials of floats are OK, but the float must be an exact integer: >>> factorial(30.1) Traceback (most recent call last): ... ValueError: n must be exact integer >>> factorial(30.0) 265252859812191058636308480000000 It must also not be ridiculously large: >>> factorial(1e100) Traceback (most recent call last): ... OverflowError: n too large """ import math if not n > = 0 : raise ValueError( "n must be >= 0" ) if math.floor(n) ! = n: raise ValueError( "n must be exact integer" ) if n + 1 = = n: # catch a value like 1e300 raise OverflowError( "n too large" ) result = 1 factor = 2 while factor < = n: result * = factor factor + = 1 return result if __name__ = = "__main__" : import doctest |
why n<0 has been not used?namely, why it is not written as if n<0:?
is there any profit from using not?plz, explain.
in the line( if n+1 == n: ), for large value of n as 1e100, this is True and if block is runned.
why for a very large value of n, this condition is True? plz, explain.
in the above subject, what is the smallest value for n that the condition is satisfied? how the value is obtained?
last question:
What is the difference or profit of using not 3==2 with respect to (3 !=2) using in if statement?
thanks