This commit is contained in:
2020-01-23 14:55:01 +00:00
parent b2be43edd0
commit 4e9fdba632

View File

@@ -91,7 +91,7 @@ def prerelease_047822_india_2020():
# ask for input, remove duplicated characters and remove non-numerical characters # ask for input, remove duplicated characters and remove non-numerical characters
optional_extras = "".join(char for char in "".join(set(input("Please enter the numbers of the optional extras you would like. Invalid options will be ignored: "))) if char.isdigit()) optional_extras = "".join(char for char in "".join(set(input("Please enter the numbers of the optional extras you would like. Invalid options will be ignored: "))) if char.isdigit())
# remove numbers outside of valid range # remove numbers outside of valid range
optional_extras = "".join(char for char in optional_extras if 0 < char < 6) optional_extras = "".join(char for char in optional_extras if 0 < int(char) < 6)
# add costs of chosen optional extras to total cost # add costs of chosen optional extras to total cost
optional_extra_costs = [45000, 5500, 1000, 350, 1000] optional_extra_costs = [45000, 5500, 1000, 350, 1000]
@@ -120,11 +120,13 @@ def prerelease_047822_india_2020():
print("Invalid input. Please enter a number.") print("Invalid input. Please enter a number.")
trade_amount = None trade_amount = None
# if input is a number outside of the acceptable range, display an error # if input is a number outside of the acceptable range, display an error
elif (trade_amount <= 0): elif (int(trade_amount) <= 0):
print("Invalid input. Please enter a number above 0.") print("Invalid input. Please enter a number above 0.")
trade_amount = None trade_amount = None
trade_amount = float(trade_amount)
else: else:
car_trade = False car_trade = False
trade_amount = 0
# display total cost without discounts # display total cost without discounts
print("Cost: Rs %.2f" % cost) print("Cost: Rs %.2f" % cost)
@@ -142,11 +144,11 @@ def prerelease_047822_india_2020():
print("Which payment option would you like?") print("Which payment option would you like?")
cashback = cost * 0.01 cashback = cost * 0.01
if (cashback > optional_extras_cost): if (cashback > optional_extras_cost):
print("(1) Pay full amount now - 1% \cashback - total cost Rs %.2f - one payment - including cashback of Rs %.2f | or free optional extras - total cost %.2f - one payment - including discount of %.2f" % (cost * 0.99, cashback, cost - optional_extras_cost, optional_extras_cost)) print("(1) Pay full amount now - 1%s cashback - total cost Rs %.2f - one payment - including cashback of Rs %.2f | or free optional extras - total cost %.2f - one payment - including discount of %.2f" % ("%", cost * 0.99 - discount, cashback, cost - optional_extras_cost - discount, optional_extras_cost))
else: else:
print("(1) Pay full amount now - free optional extras - total cost %.2f - one payment - including discount of %.2f | or 1% \cashback - total cost Rs %.2f - one payment - including cashback of Rs %.2f" % (cost - optional_extras_cost, optional_extras_cost, cost * 0.99, cashback)) print("(1) Pay full amount now - free optional extras - total cost %.2f - one payment - including discount of %.2f | or 1%s cashback - total cost Rs %.2f - one payment - including cashback of Rs %.2f" % (cost - optional_extras_cost - discount, optional_extras_cost, "%", cost * 0.99 - discount, cashback))
print("(2) Monthly payements for four years - no charge - total cost Rs %.2f - payments of Rs %.2f - 48 payments" % (cost, cost / 48)) print("(2) Monthly payements for four years - no charge - total cost Rs %.2f - payments of Rs %.2f - 48 payments" % (cost - discount, cost / 48))
print("(3) Monthly payments for seven years - 5% \charge - total cost Rs %.2f - payments of Rs %.2f - 80 payments" % (cost * 1.05, cost * 1.05 / 84)) print("(3) Monthly payments for seven years - 5%s charge - total cost Rs %.2f - payments of Rs %.2f - 80 payments" % ("%", cost * 1.05 - discount, cost * 1.05 / 84))
# keep asking until valid input entered # keep asking until valid input entered
payment_option = None payment_option = None
while (not payment_option): while (not payment_option):
@@ -161,6 +163,7 @@ def prerelease_047822_india_2020():
print("Invalid input. Please enter a number between 1 and 3.") print("Invalid input. Please enter a number between 1 and 3.")
payment_option = None payment_option = None
# calculate total cost, adjusted for chosen payment option # calculate total cost, adjusted for chosen payment option
payment_option = int(payment_option)
if (payment_option == 3): if (payment_option == 3):
cost *= 1.05 cost *= 1.05
@@ -168,11 +171,11 @@ def prerelease_047822_india_2020():
if (payment_option == 1): if (payment_option == 1):
print("Which option would you like?") print("Which option would you like?")
if (cashback > optional_extras_cost): if (cashback > optional_extras_cost):
print("(1) Cashback - save Rs %.2f" % cashback) print("(1) Cashback - save Rs %.2f - total cost Rs %.2f" % (cashback, cost * 0.99 - discount))
print("(2) Free optional extras - save Rs %.2f" % optional_extras_cost) print("(2) Free optional extras - save Rs %.2f - total cost Rs %.2f" % (optional_extras_cost, cost - optional_extras_cost - discount))
else: else:
print("(1) Free optional extras - save Rs %.2f - total cost Rs %.2f" % (optional_extras_cost, cost - optional_extras_cost)) print("(1) Free optional extras - save Rs %.2f - total cost Rs %.2f" % (optional_extras_cost, cost - optional_extras_cost - discount))
print("(2) Cashback - save Rs %.2f - total cost Rs %.2f" % (cashback, cost * 0.99)) print("(2) Cashback - save Rs %.2f - total cost Rs %.2f" % (cashback, cost * 0.99 - discount))
# keep asking until valid input entered # keep asking until valid input entered
cashback_or_free_extras = None cashback_or_free_extras = None
while (not cashback_or_free_extras): while (not cashback_or_free_extras):
@@ -182,13 +185,14 @@ def prerelease_047822_india_2020():
print("Invalid input. Please enter a number.") print("Invalid input. Please enter a number.")
cashback_or_free_extras = None cashback_or_free_extras = None
# if input is number outside of acceptable range, display error # if input is number outside of acceptable range, display error
elif (not 0 < cashback_or_free_extras < 3): elif (not 0 < int(cashback_or_free_extras) < 3):
print("Invalid input. Please enter either 1 or 2.") print("Invalid input. Please enter either 1 or 2.")
cashback_or_free_extras = None cashback_or_free_extras = None
# calculate total cost and store order discount message # calculate total cost and store order discount message
cashback_or_free_extras = int(cashback_or_free_extras)
if ((cashback > optional_extras_cost and cashback_or_free_extras == 1) or (cashback <= optional_extras_cost and cashback_or_free_extras == 2)): if ((cashback > optional_extras_cost and cashback_or_free_extras == 1) or (cashback <= optional_extras_cost and cashback_or_free_extras == 2)):
cost = cost * 0.99 cost = cost * 0.99
order_message = "1% \cashback of Rs %.2f" % cashback order_message = "1%s cashback of Rs %.2f" % ("%", cashback)
else: else:
cost = cost - optional_extras_cost cost = cost - optional_extras_cost
order_message = "free optional extras (Rs %.2f)" % optional_extras_cost order_message = "free optional extras (Rs %.2f)" % optional_extras_cost
@@ -196,10 +200,14 @@ def prerelease_047822_india_2020():
if payment_option == 2: if payment_option == 2:
order_message = "no discount" order_message = "no discount"
elif payment_option == 3: elif payment_option == 3:
order_message = "5% price increase of Rs %.2f" % cost / 1.05 * 0.05 order_message = "5%s price increase of Rs %.2f" % ("%", cost / 1.05 * 0.05)
cost = cost - discount - trade_amount
# print order summary # print order summary
print("\nOrder summary:") print("\nOrder summary:")
print("Total cost: Rs %.2f - with %s" % (cost, order_message)) print("Total cost: Rs %.2f - with %s" % (cost, order_message))
payments_number = [1, 48, 80] payments_number = [1, 48, 80]
print("%d payment(s) of Rs %.2f" % (payments_number[payment_option], cost / payments_number[payment_option])) print("%d payment(s) of Rs %.2f" % (payments_number[payment_option - 1], cost / payments_number[payment_option - 1]))
prerelease_047822_india_2020()