Friday, September 19, 2025

Project Work - Python Programming

  Project Work



Develop a money exchange system in Python and write a report on it. Your project should include functionalities for converting between various currencies using exchange rates.

Steps to Follow:

Understand the Requirements:

1. Research and decide on the features to include, such as currency conversion, displaying exchange rates, and handling errors.

2. Identify the currencies to support (e.g., USD, EUR, GBP, INR, NPR).

Design the Program:

1. Outline the structure of your program using pseudocode or a flowchart.

2. Include functions for key features like fetching exchange rates, converting currencies, and displaying results.

Write the code

1. Develop the program in Python, ensuring proper use of functions, loops, and conditionals.

2. Organize the code into logical sections with meaningful variable and function names.

3. Add comments for clarity.

Test the Program:

1. Provide sample inputs and validate the outputs.

2. Ensure the program handles errors as well

Document the Analysis:

1. Describe whether the program executed without errors.

2. Provide examples of inputs and outputs to demonstrate functionality.

3. Assess whether the code is well-organized and easy to follow, noting any areas for improvement.

Suggest Improvements:

1. Propose additional features, such as live rate updates, historical rate tracking, or a graphical user interface.

2. Offer suggestions on how your peer could enhance the program’s functionality or code readability.

 

# Currency Exchange System (Simple version without functions)

 

# Dictionary of exchange rates (static example)

exchange_rates = {

    "USD": {"EUR": 0.85, "GBP": 0.75, "INR": 74.5, "NPR": 120.5},

    "EUR": {"USD": 1.18, "GBP": 0.88, "INR": 87.5, "NPR": 141.5},

    "GBP": {"USD": 1.33, "EUR": 1.14, "INR": 100.5, "NPR": 160.5},

    "INR": {"USD": 0.013, "EUR": 0.011, "GBP": 0.0099, "NPR": 1.61},

    "NPR": {"USD": 0.0083, "EUR": 0.0071, "GBP": 0.0062, "INR": 0.62}

}

 

# Main Program Loop

while True:

    print("\nWelcome to the Money Exchange System")

    print("1. Convert Currency")

    print("2. Display Exchange Rates")

    print("3. Exit")

   

    choice = input("Enter your choice (1/2/3): ")

   

    if choice == '1':

        # Currency Conversion

        from_currency = input("Enter the source currency (USD, EUR, GBP, INR, NPR): ").upper()

        to_currency = input("Enter the target currency (USD, EUR, GBP, INR, NPR): ").upper()

       

        # Check if the currencies are valid

        if from_currency in exchange_rates and to_currency in exchange_rates[from_currency]:

            amount = float(input(f"Enter the amount in {from_currency}: "))

            rate = exchange_rates[from_currency][to_currency]

            converted_amount = amount * rate

            print(f"{amount} {from_currency} = {converted_amount:.2f} {to_currency}")

        else:

            print("Error: Invalid currencies or conversion rate not available.")

   

    elif choice == '2':

        # Display Exchange Rates

        print("Exchange Rates:")

        for from_currency in exchange_rates:

            for to_currency in exchange_rates[from_currency]:

                print(f"1 {from_currency} = {exchange_rates[from_currency][to_currency]} {to_currency}")

   

    elif choice == '3':

        # Exit the program

        print("Thank you for using the Money Exchange System. Goodbye!")

        break

   

    else:

        # Invalid option

        print("Invalid choice. Please enter a valid option.")

Python Program Collection 04

 

 Python Program Collection 04



1.     Print numbers from 1 to 10 using a for loop

 

for i in range(1, 11):

    print(i)

 

2.     Print numbers from 1 to 10 using a while loop

 

i = 1

while i <= 10:

    print(i)

    i += 1

 

3.     Print the first 10 natural numbers in reverse order

 

for i in range(10, 0, -1):

    print(i)

 

4.     Sum of numbers from 1 to 100

 

total = 0

for i in range(1, 101):

    total += i

print("Sum:", total)

 

5.     Print even numbers between 1 and 20

 

for i in range(2, 21, 2):

    print(i)

 

6.     Find the sum of even numbers between 1 and 50

 

total = 0

for i in range(2, 51, 2):

    total += i

print("Sum of even numbers between 1 and 50:", total)

 

7.     Calculate the sum of all odd numbers from 1 to 100

 

total = 0

for i in range(1, 101, 2):

    total += i

print("Sum of odd numbers between 1 and 100:", total)

 

 

8.     Sum of the first n natural numbers

 

n = int(input("Enter a number: "))

total = sum(range(1, n + 1))

print(f"Sum of the first {n} natural numbers is {total}")

 

9.     Find the sum of numbers divisible by 3 and 5 between 1 and 100

 

total = 0

for i in range(1, 101):

    if i % 3 == 0 and i % 5 == 0:

        total += i

print("Sum of numbers divisible by 3 and 5 between 1 and 100:", total)

 

10.  Print the first 10 multiples of a given number

 

num = int(input("Enter a number: "))

for i in range(1, 11):

    print(f"{num} x {i} = {num * i}")

 

11.  Print the sum of the first 20 even numbers

 

total = 0

for i in range(2, 41, 2):

    total += i

print("Sum of the first 20 even numbers:", total)

 

 

 

12.  Print the multiplication table of a number

 

num = int(input("Enter a number: "))

for i in range(1, 11):

    print(f"{num} x {i} = {num * i}")

 

13.  Factorial of a number using a for loop

 

num = int(input("Enter a number: "))

factorial = 1

for i in range(1, num + 1):

    factorial *= i

print(f"Factorial of {num} is {factorial}")

 

14.  Factorial of a number using a while loop

 

num = int(input("Enter a number: "))

factorial = 1

i = 1

while i <= num:

    factorial *= i

    i += 1

print(f"Factorial of {num} is {factorial}")

 

15.  Print the Fibonacci sequence up to a given number

 

n = int(input("Enter a number: "))

a, b = 0, 1

while a <= n:

    print(a, end=" ")

    a, b = b, a + b

 

16.  Print the Fibonacci sequence up to n terms using a while loop

 

n = int(input("Enter the number of terms: "))

a, b = 0, 1

count = 0

while count < n:

    print(a, end=" ")

    a, b = b, a + b

    count += 1

 

17.  Print the sum of the digits of a number

 

num = int(input("Enter a number: "))

sum = 0

while num > 0:

    digit = num % 10        

    sum += digit     #

    num = num // 10           

print("Sum of the digits:", sum)

 

18.  Check if a number is prime using a while loop

 

num = int(input("Enter a number: "))

i = 2

is_prime = True

while i <= num // 2:

    if num % i == 0:

        is_prime = False

        break

    i += 1

if is_prime:

    print(f"{num} is a prime number.")

else:

    print(f"{num} is not a prime number.")

 

19.  Print all prime numbers up to 50

 

for num in range(2, 51):

    for i in range(2, num):

        if num % i == 0:

            break

    else:

        print(num)

 

20.  Find the GCD of two numbers using a while loop

 

a = int(input("Enter the first number: "))

b = int(input("Enter the second number: "))

while b:

    a, b = b, a % b

print(f"GCD is {a}")

 

21.  Find the LCM of two numbers using a for loop

 

def gcd(a, b):

    while b:

        a, b = b, a % b

    return a

 

def lcm(a, b):

    return a * b // gcd(a, b)

 

a = int(input("Enter the first number: "))

b = int(input("Enter the second number: "))

print(f"LCM is {lcm(a, b)}")

 

22.  Count the number of digits in a number

 

num = int(input("Enter a number: "))

count = 0

while num > 0:

    num //= 10

    count += 1

print(f"Number of digits:", count)

 

23.  Calculate the power of a number using a for loop

 

base = int(input("Enter the base: "))

exponent = int(input("Enter the exponent: "))

result = 1

for _ in range(exponent):

    result *= base

print(f"{base} to the power of {exponent} is {result}")

 

24.  Reverse a number using a while loop

num = int(input("Enter a number: "))

reversed_num = 0

while num > 0:

    digit = num % 10              

    reversed_num = reversed_num * 10 + digit 

    num = num // 10               

print("Reversed number:", reversed_num)

 

25.  Print the sum of squares of numbers from 1 to 10

 

total = 0

for i in range(1, 11):

    total += i ** 2

print("Sum of squares:", total)

 

26.  Print the cube of numbers from 1 to 5

 

for i in range(1, 6):

    print(f"Cube of {i} is {i ** 3}")

 

27.  Check if a number is a palindrome using a while loop

 

num = int(input("Enter a number: "))

original_num = num

reversed_num = 0

while num > 0:

    digit = num % 10

    reversed_num = reversed_num * 10 + digit

    num //= 10

 

if original_num == reversed_num:

    print(f"{original_num} is a palindrome.")

else:

    print(f"{original_num} is not a palindrome.")

 

28.  Print all Armstrong numbers between 100 and 999

 

for num in range(100, 1000):

    sum_of_cubes = sum(int(digit) ** 3 for digit in str(num))

    if sum_of_cubes == num:

        print(num)

 

29.  Check if a number is an Armstrong number using a while loop

 

num = int(input("Enter a number: "))

sum_of_cubes = 0

temp = num

 

while temp > 0:

    digit = temp % 10

    sum_of_cubes += digit ** 3

    temp //= 10

 

if num == sum_of_cubes:

    print(f"{num} is an Armstrong number.")

else:

    print(f"{num} is not an Armstrong number.")

 

30.  Print the factorial of a number using recursion

 

def factorial(n):

    if n == 1:

        return 1

    else:

        return n * factorial(n - 1)

 

num = int(input("Enter a number: "))

print(f"Factorial of {num} is {factorial(num)}")

 

31.  Print a pyramid pattern of stars

 

rows = int(input("Enter the number of rows: "))

for i in range(1, rows + 1):

    print(' ' * (rows - i) + '*' * (2 * i - 1))

 

32.  Print an inverted pyramid pattern of stars

 

rows = int(input("Enter the number of rows: "))

for i in range(rows, 0, -1):

    print(' ' * (rows - i) + '*' * (2 * i - 1))

 

33.  Find the sum of the digits of an integer using a for loop

 

num = input("Enter a number: ")

total = 0

for digit in num:

    total += int(digit)

print("Sum of digits:", total)

 

34.  Calculate the average of numbers entered by the user

 

total = 0

count = 0

while True:

    num = input("Enter a number (or 'done' to finish): ")

    if num.lower() == 'done':

        break

    total += float(num)

    count += 1

print("Average:", total / count)

 

35.  Generate a list of squares of numbers from 1 to n

 

n = int(input("Enter a number: "))

squares = [i ** 2 for i in range(1, n + 1)]

print("List of squares:", squares)

 

36.  Print all multiples of 4 between 1 and 100

 

for i in range(4, 101, 4):

    print(i)

 

37.  Check if a number is a perfect square using a while loop

 

import math

 

num = int(input("Enter a number: "))

sqrt = math.isqrt(num)

if sqrt * sqrt == num:

    print(f"{num} is a perfect square.")

else:

    print(f"{num} is not a perfect square.")

 

38.  Check if a number is a perfect number

 

num = int(input("Enter a number: "))

divisors = [i for i in range(1, num) if num % i == 0]

if sum(divisors) == num:

    print(f"{num} is a perfect number.")

else:

    print(f"{num} is not a perfect number.")

 

39.  Print the factorial of numbers from 1 to n

 

n = int(input("Enter a number: "))

factorial = 1

for i in range(1, n + 1):

    factorial *= i

    print(f"Factorial of {i} is {factorial}")

 

40.  Find the largest number in a list using a loop

 

lst = [int(x) for x in input("Enter numbers separated by spaces: ").split()]

largest = lst[0]

for num in lst:

    if num > largest:

        largest = num

print("Largest number:", largest)

 

41.  Print all prime factors of a given number

 

num = int(input("Enter a number: "))

i = 2

while num > 1:

    if num % i == 0:

        print(i)

        num //= i

    else:

        i += 1

 

42.  Find the smallest number in a list using a loop

 

lst = [int(x) for x in input("Enter numbers separated by spaces: ").split()]

smallest = lst[0]

for num in lst:

    if num < smallest:

        smallest = num

print("Smallest number:", smallest)

 

43.  Print the first n odd numbers

 

n = int(input("Enter the number of odd numbers: "))

count = 0

i = 1

while count < n:

    print(i)

    i += 2

    count += 1

 

44.  Print the first n even numbers

 

n = int(input("Enter the number of even numbers: "))

count = 0

i = 2

while count < n:

    print(i)

    i += 2

    count += 1

 

45.  Count the number of vowels and consonants in a string

 

string = input("Enter a string: ").lower()

vowels = 'aeiou'

vowel_count = consonant_count = 0

for char in string:

    if char.isalpha():

        if char in vowels:

            vowel_count += 1

        else:

            consonant_count += 1

print("Vowels:", vowel_count)

print("Consonants:", consonant_count)

 

46.  Print the reverse of a string using a loop

 

string = input("Enter a string: ")

reversed_string = ""

for char in string:

    reversed_string = char + reversed_string

print("Reversed string:", reversed_string)

 

 

47.  Count the frequency of each character in a string

 

string = input("Enter a string: ").lower()

frequency = {}

for char in string:

    if char in frequency:

        frequency[char] += 1

    else:

        frequency[char] = 1

print("Character frequency:", frequency)

 

Print all the factors of a number

 

num = int(input("Enter a number: "))

for i in range(1, num + 1):

    if num % i == 0:

        print(i)

 

48.  Calculate the sum of series 1 + 1/2 + 1/3 + ... + 1/n

 

n = int(input("Enter a number: "))

total = 0

for i in range(1, n + 1):

    total += 1 / i

print("Sum of the series:", total)

 

49.  Print the elements of a list in reverse order using a for loop

 

lst = [int(x) for x in input("Enter numbers separated by spaces: ").split()]

for i in range(len(lst) - 1, -1, -1):

    print(lst[i])

 

50.  Count the frequency of elements in a list using a dictionary

 

lst = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]

frequency = {}

for item in lst:

    if item in frequency:

        frequency[item] += 1

    else:

        frequency[item] = 1

print("Frequency of elements:", frequency)