# Calculating the factorial of a number # is a good way to practice recursion. Below # are examples of both recursive and iterative # approaches to calculating a factorial. Of course # python has its own builtin math module that # can also take care of factorials. import math # A recursive function to calculate the # factorial of N def recursiveFactorial(n): if n == 1: return n return n * recursiveFactorial(n - 1) # Iterative calculation of the factorial # of N def iterativeFactorial(n): result = 1 while n > 1: result *= n n = n-1 return result # Builtin python math.factorial of N def pythonLib(n): return math.factorial(n) print("Iterative factorial of 5: ", iterativeFactorial(5)) print("Recursive factorial of 5: ", recursiveFactorial(5)) print("math.factorial of 5: ", pythonLib(5)) print("Iterative factorial of 10: ", iterativeFactorial(10)) print("Recursive factorial of 10: ", recursiveFactorial(10)) print("math.factorial of 10: ", pythonLib(10)) print("Iterative factorial of 15: ", iterativeFactorial(15)) print("Recursive factorial of 15: ", recursiveFactorial(15)) print("math.factorial of 15: ", pythonLib(15)) # my results: # Iterative factorial of 5: 120 # Recursive factorial of 5: 120 # math.factorial of 5: 120 # Iterative factorial of 10: 3628800 # Recursive factorial of 10: 3628800 # math.factorial of 10: 3628800 # Iterative factorial of 15: 1307674368000 # Recursive factorial of 15: 1307674368000 # math.factorial of 15: 1307674368000
A python example based blog that shows how to accomplish python goals and how to correct python errors.
Showing posts with label while. Show all posts
Showing posts with label while. Show all posts
Thursday, March 3, 2011
Python - Compute the factorial of N with recursion (among others)
Thursday, February 3, 2011
Python - Roman Numeral to Number Generator
# Convert a roman numeral to a number. # # If you are interested in roman numerals check out my other post # python script that takes a number and generates a roman numeral # # For a life time of knowledge checkout: # http://en.wikipedia.org/wiki/Roman_numerals # def ConvertRomanNumeralToNumber(roman_numeral): number_result = 0 roman_numerals = { 1:"I", 4:"IV", 5:"V", 9:"IX", 10:"X", 40:"XL", 50:"L", 90:"XC", 100:"C", 400:"CD", 500:"D", 900:"CM", 1000:"M"} # Iterate through the roman numerals. But you see here that I sort them to # get the largest string size first: "CD" comes before "I" for numeral_value in sorted(roman_numerals, key=lambda roman: len(roman_numerals[roman]), reverse=True): keep_converting = True while keep_converting: if roman_numeral.find(roman_numerals[numeral_value]) != -1: number_result += numeral_value roman_numeral = roman_numeral.replace(roman_numerals[numeral_value], "", 1) else: keep_converting = False return number_result print(ConvertRomanNumeralToNumber("MCDXLIV")) print(ConvertRomanNumeralToNumber("MMMDCCCLXXXVIII")) print(ConvertRomanNumeralToNumber("MMMCMXCIX")) # my output: # 1444 # 3888 # 3999
Python - Roman Numeral Generator
# Convert a number to a roman numeral. # # If you are interested in roman numerals check out my other post to convert roman numerals back to numbers # python script that takes roman numerals and generates numbers. # # To increase your life time of knowledge read up on roman numerals: # http://en.wikipedia.org/wiki/Roman_numerals def ConvertNumberToRomanNumeral(number): roman_numeral_result = "" # Roman numeral dict. Place approved roman numeral key:value pairs # in the dict and they will be used. roman_numerals = { 1:"I", 4:"IV", 5:"V", 9:"IX", 10:"X", 40:"XL", 50:"L", 90:"XC", 100:"C", 400:"CD", 500:"D", 900:"CM", 1000:"M"} # Iterate from highest to lowest through the roman numerals. for numeral_value in sorted(roman_numerals.keys(), reverse=True): # Continue replacing large roman numerals while the number is # high enough. while (number >= numeral_value): # Build the Roman Numeral string. roman_numeral_result += roman_numerals[numeral_value] # Decrease the working number by the roman numeral value just # added to the roman numeral result. number -= numeral_value return roman_numeral_result print(ConvertNumberToRomanNumeral(1444)) print(ConvertNumberToRomanNumeral(3888)) print(ConvertNumberToRomanNumeral(3999)) # my output: # MCDXLIV # MMMDCCCLXXXVIII # MMMCMXCIX
Thursday, February 25, 2010
Python - the final countdown
# There is more than one way to accomplish a task. # I needed a method to countdown from a positive # number down to 0. Here are three ways to solve # the issue. Of course there are many more possible # solutions. # # I'd like to title this post "The Final Count Down" # Listen to this tune whilst perusing the script: # www.youtube.com/watch?v=tt_ro2aerQg # Using recursion always makes the girls swoon. def recursiveCountdown(number): print number if number > 0: recursiveCountdown(number-1) # Old school while loop. This solution gets points # for being the most obvious. def whileLoopCountdown(number): while number > -1: print number number -= 1 # Using python's xrange function is the most concise. def xrangeCountdown(number): for i in xrange(number, -1, -1): print i print "It's the final countdown" number = input("Enter number: ") print "Recursive..." recursiveCountdown(number) print "While Loop..." whileLoopCountdown(number) print "xrange..." xrangeCountdown(number) # my output: # #It's the final countdown #Enter number: 5 #Recursive... #5 #4 #3 #2 #1 #0 #While Loop... #5 #4 #3 #2 #1 #0 #xrange... #5 #4 #3 #2 #1 #0
Tuesday, September 22, 2009
python - while loop specified time frame
import time
def looper(timeCount):
start = time.time()
keepLooping = True
while keepLooping:
if time.time()-start > timeCount:
keepLooping = False
else:
print time.time()-start
time.sleep(0.1)
if __name__ == '__main__':
looper(10.0)
Subscribe to:
Posts (Atom)