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
67 changes: 67 additions & 0 deletions 4.1_Random_Password.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
'''
As a user, I want to use a program which can generate random password and display the result on user interface. So that I can generate my password for any application.

Acceptance Criteria:

Password length must be 10 characters long.
It must contain at least 2 upper case letter, 2 digits and 2 special symbols.
You must import some required modules or packages.
The GUI of program must contain at least a button and a label.
The result should be display on the password label when the user click the generate button.
'''


# http://54.234.188.223:8501/
# streamlit run app.py

from random import choice,shuffle
import streamlit as st
html_temp = """
<div style="width:700px;background-color:black;padding:10px">
<h1 style="color:white;text-align:center;">Generate Your Password</h1>
</div>"""
st.markdown(html_temp,unsafe_allow_html=True)

from PIL import Image
im = Image.open("image.jpg")
st.image(im, width=700)

upper_cases='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
lower_cases='abcdefghijklmnopqrstuvwxyz'
digits='0123456789'
specials='!"#$%&\()*+,-./:;<=>?@[]^_`{|}~'
all_char=upper_cases+lower_cases+digits+specials

st.sidebar.header("Configure the Password Features:")
lenght=st.slider('What is the lenght of password?',0,20,10)
upper_case_count=st.sidebar.slider('What is the count of the upper cases at least?',0,10,2)
lower_case_count=st.sidebar.slider('What is the count of the lower cases at least?',0,10,2)
digit_count=st.sidebar.slider('What is the count of the digits at least?',0,10,2)
special_count=st.sidebar.slider('What is the count of the special characters at least?',0,10,2)


if st.button('Generate'):
upper,lower,special,digit,password=['' for _ in range(5)]

for i in range(upper_case_count):
upper += choice(upper_cases)

for i in range(lower_case_count):
lower += choice(lower_cases)

for i in range(digit_count):
digit += choice(digits)

for i in range(special_count):
special += choice(specials)

must_be = upper + lower + digit + special

for i in range(lenght-len(must_be)):
password += choice(all_char)

password+=must_be
password=list(password)
shuffle(password)

st.success(f'''Password: "{''.join(password)}"''')
35 changes: 35 additions & 0 deletions 4.2_The_Least_Common_Multiple.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"""
2 - The Least Common Multiple

As a user, I want to use a program which can calculate the least common multiple (L.C.M.) of four numbers. So that I can find the least common multiple (L.C.M.) of my inputs.

Acceptance Criteria:

Ask user to enter the four numbers.
Use try/except blocks to verify input entries and warn the user for Nan or non numerical inputs.
Calculate the least common multiple (L.C.M.) of four numbers
Use gcd function in module of math
"""
from math import gcd

def isValid(n:str) ->bool:
try:
1/int(n)
except Exception:
print("Entry is invalid! Try again...\n")
return False
else:
return True

nums=[]
while len(nums)<4:
n=input(f"Number_{len(nums)+1}: ")
if isValid(n): nums.append(int(n))

gcd1 = gcd(nums[0],nums[1])
gcd2 = gcd(nums[2],nums[3])
lcm_1 = nums[0]*nums[1] // gcd1
lcm_2 = nums[2]*nums[3] // gcd2

print(f"\nEBOB{nums} = {gcd(gcd1,gcd2)}\n"
f"EKOK{nums} = {lcm_1*lcm_2//gcd(lcm_1,lcm_2)}")
35 changes: 35 additions & 0 deletions 4.3_Number_Guessing_Game.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
'''
3- Number Guessing Game

As a player, I want to play a game which I can guess a number the computer chooses in the range I chose. So that I can try to find the correct number which was selected by computer.
Acceptance Criteria:

Computer must randomly pick an integer from user selected a range, i.e., from A to B, where A and B belong to Integer.
Your program should prompt the user for guesses
if the user guesses incorrectly, it should print whether the guess is too high or too low.
If the user guesses correctly, the program should print total time and total number of guesses.
You must import some required modules or packages
You can assume that the user will enter valid input.
'''

from random import randint
from time import time

target=randint(int(input('Lower Limit: ')),int(input('Upper Limit: ')))

print('Predict the Number:')
diff=time()
counter=0
while True:
p=int(input())
counter+=1
if p==target:
diff=time()-diff
print(f'\nCongratulations!!!\nTarget Number is {target}',
f'Number of Guesses: {counter}',
f'Time Passed: {round(diff,1)} sec.',sep='\n')
break
else:
if p > target: print('Too low...')
else: print('Too high...')

51 changes: 51 additions & 0 deletions 4.4_Mis_Calculator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
"""
4- Mis Calculator

As a user, I want to use a program which can calculate basic mathematical operations. So that I can add, subtract, multiply or divide my inputs.
Acceptance Criteria:

The calculator must support the Addition, Subtraction, Multiplication and Division operations.
Define four functions in four files for each of them, with two float numbers as parameters.
To calculate the answer, use math.ceil() and get the next integer value greater than the result
Create a menu using the print command with the respective options and take an input choice from the user.
Using if/elif statements for cases and call the appropriate functions.
Use try/except blocks to verify input entries and warn the user for incorrect inputs.
Ask user if calculate numbers again. To implement this, take the input from user Y or N.
"""

import math
from operations import add, sum, multiply, divide

def isValid(n:str) ->bool:
try:
float(n)
except Exception:
print("Entry is invalid! Try again...\n")
return False
else:
return True
while True:
nums=[]
while len(nums)<2:
n=input(f"Number_{len(nums)+1}: ")
if isValid(n): nums.append(int(n))

while True:
op=int(input('1-Addition\n2-Subtraction\n3-Multiplication\n4-Division\n\nSelect the operation number from the list above: '))
if op in [1,2,3,4]: break
print("Entry is invalid! Try again...\n")

if op==1:
result=add(nums[0],nums[1])
elif op==2:
result=sum(nums[0],nums[1])
elif op==3:
result=multiply(nums[0],nums[1])
elif op==4 and nums[1] != 0:
result=divide(nums[0],nums[1])

operate = (op==1)*'+' or (op==2)*'-' or (op==3)*'*' or (op==4)*'/'
print(f"{nums[0]} {operate} {nums[1]} = {math.ceil(result)}")

if input('Do you want to continue? [y/n]:').lower()=='n':
break
Binary file added image.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions operations.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
def add(a,b):
return a+b

def sum(a,b):
return a-b

def multiply(a,b):
return a*b

def divide(a,b):
return a/b