Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

You have been tasked to construct a program that will prepare automobile liabili

ID: 3592042 • Letter: Y

Question

You have been tasked to construct a program that will prepare automobile liability insurance estimates for customers. The input consists of: The name of the customer The age of the customer The number of traffic violations Based on this information you will determine their status as a driver, following these guidelines: Number of Violations Risk Code Risk Type 4 or More 1 High 3 2 Moderate 2 2 Moderate 1 3 Low 0 4 No More than 4 tickets indicate a “Code 1” driver, which is High Risk. “Code 2” Drivers who have either 2 or 3 tickets, are considered “Moderate Risk” drivers. Any driver with one ticket is deemed “Code 3,” and considered “Low Risk.” Drivers without any tickets are considered “Code 4,” which is “No Risk.” Based upon this classification you can then give them the appropriate quote. Pricing of Insurance: Age Number of Tickets Risk Code Price Under 25 4 or more 1 $480.00 25 or older 4 or more 1 $410.00 Under 25 3 2 $450.00 25 or older 3 2 $390.00 Under 25 2 2 $405.00 25 or older 2 2 $365.00 Under 25 1 3 $380.00 25 or older 1 3 $315.00 Under 25 0 4 $325.00 25 or older 0 4 $275.00 Sample output line follows (Items underlined are variable values): “Customer Name, as a ---- risk driver, your insurance will cost -----.” You are to account for invalid input. Drivers must be between the ages of 16 and 105. Number of traffic violations cannot be less than 0. Display only the message “Invalid Entry” in either case. I need a loop to allow the program to run multiple times as well as a way to validate age. Here is what I have so far:

def main():
    #getting name, age and ensuring customer is in the right age group
    new_quote = 'y'
    while new_quote =='y' or new_quote == 'Y':
        name = input("Please enter your name:")
        age = int(input("Please enter your age:"))
        if age<16 or age>106:
            print("Invalid age")
            new_quote =='y'
#getting number of traffic violations
    if age >=16 and age<106:
        traffic_violations = int(input("Enter your number of violations:"))
        if traffic_violations<0:
            print("Invalid Entry")
        else:
            risk_code,risk_type = calc_risk(traffic_violations)
            insurance_price = calcInsurance(age, traffic_violations, risk_code)
            display_quote(name,risk_type,insurance_price)
        new_quote = input("Would you like another quote? Y or N: ")
        if new_quote=='N' or new_quote=='n':
            print("Have a good day")
            break
#calculate the risk code and risk type
def calc_risk(traffic_violations):
    if traffic_violations >=4:
        risk_code = 1
        risk_type = 'high'
    elif traffic_violations == 3:
        risk_code = 2
        risk_type = 'moderate'
    elif traffic_violations == 2:
        risk_code = 3
        risk_type = 'moderate'
    elif traffic_violations == 1:
        risk_code = 3
        risk_type = 'low'
    elif traffic_violations == 0:
        risk_code = 4
        risk_type = 'no'
    return risk_code, risk_type
# gets the insurance price
def calcInsurance(age, number_tickets, risk_code) :
    if age <= 24 and number_tickets >= 4 and risk_code == 1:
        insurance_price = 480
    elif age >= 25 and number_tickets >= 4 and risk_code == 1:
        insurance_price = 410
    elif age <= 24 and number_tickets == 3 and risk_code == 2:
        insurance_price4 = 450
    elif age >= 25 and number_tickets == 3 and risk_code == 2:
        insurance_price = 390
    elif age <= 24 and number_tickets == 2 and risk_code == 2:
        insurance_price = 405
    elif age >= 25 and number_tickets == 2 and risk_code == 2:
        insuransce_price = 365
    elif age <= 24 and number_tickets == 1 and risk_code == 3:
        insurance_price = 380
    elif age >= 25 and number_tickets == 1 and risk_code == 3:
        insurance_price = 315
    elif age <= 24 and number_tickets == 0 and risk_code == 4:
        insurance_price = 325
    elif age >= 25 and number_tickets == 0 and risk_code == 4:
        insurance_price = 275
#display output
def display_quote(name, risk_type, insurance_price):
    print()
    print(name,",as a",risk_type,"risk driver, your insurance will be $[.2f]".format(insurance_price))
#call the main function
main()
It is telling me the break is outside the loop, so I am not sure it is actually running. Can anyone help?   
  

Explanation / Answer

def main():
    #getting name, age and ensuring customer is in the right age group
    new_quote = 'y'
    while new_quote =='y' or new_quote == 'Y':
        name = input("Please enter your name:")
        age = int(input("Please enter your age:"))
        if age<16 or age>106:
            print("Invalid age")
            new_quote =='y'
#getting number of traffic violations
    if age >=16 and age<106:
        traffic_violations = int(input("Enter your number of violations:"))
        if traffic_violations<0:
            print("Invalid Entry")
        else:
            risk_code,risk_type = calc_risk(traffic_violations)
            insurance_price = calcInsurance(age, traffic_violations, risk_code)
            display_quote(name,risk_type,insurance_price)
        new_quote = input("Would you like another quote? Y or N: ")
        if new_quote=='N' or new_quote=='n':
            print("Have a good day")
            break
#calculate the risk code and risk type
def calc_risk(traffic_violations):
    if traffic_violations >=4:
        risk_code = 1
        risk_type = 'high'
    elif traffic_violations == 3:
        risk_code = 2
        risk_type = 'moderate'
    elif traffic_violations == 2:
        risk_code = 3
        risk_type = 'moderate'
    elif traffic_violations == 1:
        risk_code = 3
        risk_type = 'low'
    elif traffic_violations == 0:
        risk_code = 4
        risk_type = 'no'
    return risk_code, risk_type
# gets the insurance price
def calcInsurance(age, number_tickets, risk_code) :
    if age <= 24 and number_tickets >= 4 and risk_code == 1:
        insurance_price = 480
    elif age >= 25 and number_tickets >= 4 and risk_code == 1:
        insurance_price = 410
    elif age <= 24 and number_tickets == 3 and risk_code == 2:
        insurance_price4 = 450
    elif age >= 25 and number_tickets == 3 and risk_code == 2:
        insurance_price = 390
    elif age <= 24 and number_tickets == 2 and risk_code == 2:
        insurance_price = 405
    elif age >= 25 and number_tickets == 2 and risk_code == 2:
        insuransce_price = 365
    elif age <= 24 and number_tickets == 1 and risk_code == 3:
        insurance_price = 380
    elif age >= 25 and number_tickets == 1 and risk_code == 3:
        insurance_price = 315
    elif age <= 24 and number_tickets == 0 and risk_code == 4:
        insurance_price = 325
    elif age >= 25 and number_tickets == 0 and risk_code == 4:
        insurance_price = 275
#display output
def display_quote(name, risk_type, insurance_price):
    print()
    print(name,",as a",risk_type,"risk driver, your insurance will be $[.2f]".format(insurance_price))

  

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote