Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions Assignment_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from pascal_function import pascal_triangle as pas_tri
while True:
number = (input('enter the number:\n'))
try:
number = int(number)
except:
print("Invalid input, please enter an integer")
quit()
pas_tri(number)
continues= input("if you want to continue write yes, if not any key \n")
if continues != 'yes':
break
21 changes: 21 additions & 0 deletions Assignment_3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
def is_perfect_number(number):
""" a function that accepts an integer and return True
if the number is a perfect number or False if not"""
sum_1 = 0
for i in range(1, number):
if number % i == 0:
sum_1 += i
sum_2 = (sum_1 + number) / 2
return sum_1 == number and sum_2 == number

number = input('enter a positive enteger \n')
try:
number = int(number)
except:
print("Invalid input, please enter an integer")
quit()
if is_perfect_number(number):
print (f"The number {number} is a perfect number")
else:
print (f"The number {number} is not a perfect number")

51 changes: 51 additions & 0 deletions Assignment_4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import random
import string
import tkinter as tk

def generate_password():
length = int(length_entry.get())
num_lower = int(lower_entry.get())
num_upper = int(upper_entry.get())
num_special = int(special_entry.get())
num_digits = length - num_lower - num_upper - num_special
if num_digits == 0:
password = ''.join(random.choices(string. ascii_lowercase, k=num_lower))
password += ''.join(random.choices(string. ascii_uppercase, k=num_upper))
password += ''.join(random.choices(string. punctuation, k=num_special))
password = ''.join(random.sample( password, len(password)))
password_label.config(text= password)
else:
password = "Error! No.of characters doesn't match length"
password_label.config(text= password)

root = tk.Tk()
root.title("Password Generator")

length_label = tk.Label(root, text="Password length")
length_label.grid(row=0, column=0)
length_entry = tk.Entry(root)
length_entry.grid(row=0, column=1)

lower_label = tk.Label(root, text="Number of lowercase letters")
lower_label.grid(row=1, column=0)
lower_entry = tk.Entry(root)
lower_entry.grid(row=1, column=1)

upper_label = tk.Label(root, text="Number of uppercase letters")
upper_label.grid(row=2, column=0)
upper_entry = tk.Entry(root)
upper_entry.grid(row=2, column=1)

special_label = tk.Label(root, text="Number of special characters")
special_label.grid(row=3, column=0)
special_entry = tk.Entry(root)
special_entry.grid(row=3, column=1)

generate_button = tk.Button(root, text="Generate", command=generate_password)
generate_button.grid(row=4, column=0, columnspan=2, pady=10)

password_label = tk.Label(root, text="")
password_label.grid(row=5, column=0, columnspan=2)


root.mainloop()
18 changes: 18 additions & 0 deletions Assignment_module_3/Assignment_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def word_sorting(words):
"""a function that accepts a hyphen separated sequence of words
and return a sorted hyphen separated sequence of words"""
words=words.split("-")
words.sort()
return "-".join(words)
words =input('Enter a hyphen separated sequence of words \n')
print(word_sorting(words))

# the program below I wrote at first, which works perfectly but not efficient.
# input_words = input('Enter words seperated by - \n')
# input_words=list(input_words.split('-'))
# sorted_words = sorted(list(input_words))
# for index, i in enumerate(sorted_words):
# if index < len(sorted_words)-1:
# print (i, end="-")
# else:
# print(i)
5 changes: 5 additions & 0 deletions Bonus_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
lst = [{'make': 'Nokia', 'model': 216, 'color': 'Black'},
{'make': 'Mi Max', 'model': '2', 'color': 'Gold'},
{'make': 'Samsung', 'model': 7, 'color': 'Blue'}]
lst.sort(key=lambda x: x ['color'])
print(lst)
5 changes: 5 additions & 0 deletions Bonus_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x : x % 2 == 0, lst ))
odd_numbers = list(filter(lambda x : x % 2 != 0, lst))
print(even_numbers)
print(odd_numbers)
Binary file added __pycache__/pascal_function.cpython-310.pyc
Binary file not shown.
28 changes: 28 additions & 0 deletions pascal_function.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
def pascal_triangle(number):
"""A function that accepts any integer n
and return the first n rows of pascal's triangle"""
row =[1]
for i in range(number):
for j in range(i+1):
print(row[j], end=" ")
row = [x+y for x, y in zip([0] + row , row + [0])]
print('\n')
if __name__ == "__pascal_triangle__":
pascal_triangle()

# .... the program below I wrote at first, which works perfectly but not efficient...........
# def pascal_triangle(number):
# for i in range (number):
# pascal_number = i
# for index in range(i+1):
# if index == 0:
# print(index + 1, end=" ")
# elif index == 1:
# print(i, end=" ")
# else:
# pascal_number *= (i-(index-1))/(index)
# print (int(pascal_number), end=" " )
# print('\n')


# pascal sequence: 1 , n , n(n−1)/2 , n(n−1)(n−2)/ 2*3 , n(n−1)(n−2)(n−3)/2*3*4......