Skip to content

Instantly share code, notes, and snippets.

@vtu27619
Created October 25, 2025 04:59
Show Gist options
  • Select an option

  • Save vtu27619/0f167d87f086d96bbbc88c3b4a3c6cd7 to your computer and use it in GitHub Desktop.

Select an option

Save vtu27619/0f167d87f086d96bbbc88c3b4a3c6cd7 to your computer and use it in GitHub Desktop.

Revisions

  1. vtu27619 created this gist Oct 25, 2025.
    145 changes: 145 additions & 0 deletions Task8.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,145 @@
    Task8a

    def number_sequence(start, end, step=1):

    current = start

    while current <= end:

    yield current

    current += step

    start = int(input("Enter the starting number: "))

    end = int(input("Enter the ending number: "))

    step = int(input("Enter the step value: "))

    # Create the generator

    sequence_generator = number_sequence(start, end, step)

    # Print the generated sequence of numbers

    for number in sequence_generator:

    print(number)



    Task8b

    8.2. Program:

    def prime_generator(n):

    # Generate prime numbers up to n

    for num in range(2, n+1):

    for i in range(2, int(num**0.5) + 1):

    if num % i == 0:

    break

    else:

    yield num

    # Take user input

    n = int(input("Enter the upper limit to generate primes: "))

    # Create the generator

    prime_gen = prime_generator(n)

    # Print the generated prime numbers

    print(f"Prime numbers up to {n}:")

    for p in prime_gen:

    print(p)



    Task8c

    def log_prime(func):

    def wrapper(n):

    for prime in func(n):

    print(f"Prime generated: {prime}") # log each prime

    yield prime

    return wrapper

    @log_prime

    def prime_generator(n):

    for num in range(2, n+1):

    for i in range(2, int(num**0.5)+1):

    if num % i == 0:

    break

    else:

    yield num

    # Generate primes up to 20

    for p in prime_generator(20):

    pass



    Task8d

    def uppercase_decorator(func):

    def wrapper(text):

    return func(text).upper()

    return wrapper

    def lowercase_decorator(func):

    def wrapper(text):

    return func(text).lower()

    return wrapper

    @uppercase_decorator

    def shout(text):

    return text

    @lowercase_decorator

    def whisper(text):

    return text

    def greet(func):

    greeting = func("Hi, I am created by a function passed as an argument.")

    print(greeting)

    greet(shout)

    greet(whisper)