Python Utility Functions and Concurrency

  • Share this:

Code introduction


This code snippet utilizes multiple built-in Python libraries to perform various tasks, including generating random strings, calculating MD5 hashes, checking for prime numbers, Fibonacci sequence, printing messages, finding numbers in a string, calculating factorials, and generating prime numbers concurrently.


Technology Stack : os, sys, random, json, time, re, hashlib, math, threading

Code Type : Function

Code Difficulty : Intermediate


                
                    
import os
import sys
import random
import json
import time
import re
import hashlib
import math
import threading

def generate_random_string(length):
    letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
    result_str = ''.join(random.choice(letters) for i in range(length))
    return result_str

def calculate_hash(data):
    return hashlib.md5(data.encode()).hexdigest()

def is_prime(number):
    if number <= 1:
        return False
    if number <= 3:
        return True
    if number % 2 == 0 or number % 3 == 0:
        return False
    i = 5
    while i * i <= number:
        if number % i == 0 or number % (i + 2) == 0:
            return False
        i += 6
    return True

def fibonacci(n):
    if n <= 1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)

def sleep_and_print(message):
    time.sleep(1)
    print(message)

def find_all_numbers(string):
    return re.findall(r'\b\d+\b', string)

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

def generate_threaded_prime_numbers(limit):
    def thread_target(limit):
        for num in range(2, limit):
            if is_prime(num):
                print(num)
    
    threads = []
    for i in range(5):
        thread = threading.Thread(target=thread_target, args=(limit,))
        threads.append(thread)
        thread.start()
    
    for thread in threads:
        thread.join()