Calculating Factorials with Iteration
def compute_factorial(num):
product = 1
for current in range(1, num + 1):
product *= current
return product
while True:
try:
user_input = int(input("Enter a positive integer: "))
if user_input < 0:
print("Factorials are undefined for negative numbers")
else:
print(f"{user_input}! = {compute_factorial(user_input)}")
break
except ValueError:
print("Please enter a valid integer")
Optiimzed Fibonacic Sequence with Recusrion
from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
def main():
try:
position = int(input("Enter Fibonacci position: "))
if position < 0:
raise ValueError
print(f"Fibonacci({position}) = {fib(position)}")
except ValueError:
print("Positive integers only")
if __name__ == "__main__":
main()
Drawing Koch Snowflakes with Turtle Graphics
import turtle
def draw_segment(t, depth, length, speed, color):
t.speed(speed)
t.pencolor(color)
if depth == 0:
t.forward(length)
else:
segment = length/3
draw_segment(t, depth-1, segment, speed, color)
t.left(60)
draw_segment(t, depth-1, segment, speed, color)
t.right(120)
draw_segment(t, depth-1, segment, speed, color)
t.left(60)
draw_segment(t, depth-1, segment, speed, color)
def create_snowflake(depth=3, size=300, speed=5, color="blue", reverse=False):
window = turtle.Screen()
pen = turtle.Turtle()
if reverse:
pen.right(180)
for _ in range(3):
draw_segment(pen, depth, size, speed, color)
pen.right(120)
window.mainloop()
# Example usage:
create_snowflake(color="green") # Standard
create_snowflake(color="purple", reverse=True) # Reversed