Jun Day 5

Whiteboard Images

Original planning for the day Plan for the day

First warmup Warmup 1

Second warmup question Warmup 2

Activity 1 First activity

Activity 1 extra notes First activity additional notes

Code Sections

Print only Uppercase Warmup string = input("Enter a string: ")
idx = 0
while(idx < len(string)):
    if(string[idx].isupper()):
        print(string[idx])
    idx = idx + 1

Password Validation pwd = input("Enter the password: ")
count = 0
correctLength = len(pwd) >= 8
containsUpper = False
containsLower = False
containsDigit = False
while(count < len(pwd)):
    if(pwd[count].isupper()):
        containsUpper = True
    elif(pwd[count].islower()):
        containsLower = True
    elif(pwd[count].isdigit()):
        containsDigit = True
    count = count + 1

if(correctLength):
    if(containsUpper):
        if(containsLower):
            if(containsDigit):
                print("Valid password")
            else:
                print("Invalid password")
        else:
            print("Invalid password")
    else:
        print("Invalid password")
else:
    print("Invalid password")


Password Generation from random import randint
def hasUpper(pwd):
    for char in pwd:
        if(char.isupper()):
            return True
    return False

def hasLower(pwd):
    for char in pwd:
        if(char.islower()):
            return True
    return False

def hasDigit(pwd):
    for char in pwd:
        if(char.isdigit()):
            return True
    return False

def isvalid(pwd):
    if(len(pwd) < 8):
        return False
    elif(not hasUpper(pwd)):
        return False
    elif(not hasLower(pwd)):
        return False
    elif(not hasDigit(pwd)):
        return False
    return True

def gen():
    pwd = ""
    digits = "0123456789"
    lower = "abcdefghijklmnopqrstuvwxyz"
    upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    length = randint(8, 15)
    for i in range(length):
        v = randint(1, 3)
        if(v == 1):
            pwd += digits[randint(0, len(digits) - 1)]
        elif(v == 2):
            pwd += lower[randint(0, len(lower) - 1)]
        else:
            pwd += upper[randint(0, len(upper) - 1)]
    return pwd

def validGen():
    pwd = gen()
    while(not isvalid(pwd)):
        pwd = gen()
    return pwd

print("Regular Gen")
for i in range(10):
    pwd = gen()
    print(pwd, isvalid(pwd))

print()
print("Valid Gen")
for i in range(10):
    pwd = validGen()
    print(pwd, isvalid(pwd))