This is the code I wrote for a project in SDEV 300:



  """ Kassandra Ring 3047272***** 1/17/2023 ***** SDEV 300 """
#Program asks user for voter registration information and prints it

#Import sys module for exits
import sys

#Establish variables

state_list = ["al", "ak", "az", "ar", "ca", "co", "ct", \
"de", "dc", "fl", "ga", "hi", "id", "il", "in", "ia", "ks",\
 "ky", "la", "me", "md", "mi", "mn", "ms", "mo", "mt", "ne",\
 "nv", "nh", "nj", "nm", "ny", "nc", "nd", "oh", "ok", "or",\
 "pa", "ri", "sc", "sd", "tn", "tx", "ut", "va", "wa", "wv", "wi", "wy"]


def user_age():
    """Function to determine age eligibility"""

#Prompt user for age, ask again if input is < 18 or > 100
    valid = 0
    while valid == 0:
        age = input("How old are you? \n")
        if age.isnumeric() or age.lower() == "exit":
            if age.lower() == "exit":
                sys.exit ("Thank you for using a Nothing is Real product. Good Bye!")
            elif int(age) < 18 and int(age) > 0:
                sys.exit ("Thank you for using a Nothing is Real product, however you \
must be 18 or older to register to vote. Good Bye!")
            elif int(age) > 120 or int(age) < 0:
                print (("Are you really"),(age),('''years old? If so please email us at:
Registration@NiR.org. Otherwise please re-enter your age below.\n'''))
                valid = 0
            elif int(age) >= 18 or int(age) <= 120:
                return age
        else:
            print ((age), ("is not a number please enter a number."))

def user_citizen():
    """Function to determine citizenship eligibility"""

#Prompt user for citizenship status if input does not equal yes or exit, ask again
    valid = 1
    while valid == 1:
        citizen = input("Are you a U.S. Citizen? (Yes/No)\n")
        if citizen.lower() == "no":
            print ('''You must be a U.S. citizen to register to vote.
Please use our Nothing is Real Citizenship application
located on our website www.NiR.org.\n''')
            sys.exit("Thank you for using a Nothing is Real product. Good Bye!")
        elif citizen.lower() == "exit":
            sys.exit ("Thank you for using a Nothing is Real product. Good Bye!")
        elif citizen.lower() == "yes":
            return citizen
        else:
            print ("Please type either yes or no.\n")
            valid = 1

def user_state():
    """Function to determine state eligibility"""

#Prompt user for state of residency if input does not match list or equal exit, ask again
    valid = 2
    while valid == 2:
        state = input("What is the two letter abreviation for the state do you live in?\n")
        if state.lower() in state_list:
            return state
        if state.lower() == "exit":
            sys.exit ("Thank you for using a Nothing is Real product. Good Bye!")
        else:
            print ('''\nPlease enter a valid state abbreviation.
*For example Texas should be written TX.\n''')
            valid = 2

def user_zipcode():
    """Function to determine zipcode eligibility"""

#Prompt user for zipcode if input is not 5 numbers long or equal exit, ask again
    valid = 3
    while valid == 3:
        zipcode = input("What is your zipcode? Be sure to enter any leading zeros.\n")
        if len(zipcode) == 5 and zipcode.isnumeric():
            return zipcode
        if zipcode.lower() == "exit":
            sys.exit ("Thank you for using a Nothing is Real product. Good Bye!")
        else:
            print ("\nPlease enter a valid 5 digit zipcode, including leading zeros.\n")
            valid = 3

def main():
    """ Main function for program"""

#Welcome message and instructions
    print ('''Welcome to Nothing is Real's Voter Registration

If you would like to quit, type exit at any time.

*Note: If your name is "exit", we appolize. Please email your information to:
Registration@NiR.org''')

#Prompt user for first and last name
    first_name = input("\nWhat is your first name? \n")
    if first_name.lower() == "exit":
        sys.exit("Thank you for using a Nothing is Real product. Good Bye!")
    last_name = input("What is your last name? \n")
    if last_name.lower() == "exit":
        sys.exit ("Thank you for using a Nothing is Real product. Good Bye!")

#Calls functions and assings their results to variables for output
    age = user_age()
    citizen = user_citizen()
    state = user_state()
    zipcode = user_zipcode()

#Display user inputs. Program closes when user hits enter
    print ('''\nThank you for using a Nothing is Real product to register to vote.
Below is the information we have gathered:''')

    print (("\nName (first last):"), (first_name.upper()), (last_name.upper()), \
    ("\nAge:"), (int (age)),\
    ("\nU.S. Citizen:"), (citizen.upper()), \
    ("\nState:"), (state.upper()), \
    ("\nZipcode:"), (zipcode))

    print ('''\nOnce again, thank you for using a Nothing is Real product.
You should recieve your voter registration card in 2-3 weeks. \n
Press enter to exit''')

#Calls main function
main()

#Empty input variable so that the information stays on the screen until the user hits enter
user_exit = input("")