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))
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.