Last active
August 29, 2015 14:08
-
-
Save fabian57/e73360edc38b5ce01fd7 to your computer and use it in GitHub Desktop.
Les deux programmes (sans fonctions et avec fonctions(avec tout plein de nombres magiques pour le deuxième))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Program without functions | |
mileage = input("Mileage? ") | |
duration = input("Duration (in days)? ") | |
category = raw_input("Categorie (A or B)? ") | |
COST_PER_DAY_UNLIMITED_A = 70 | |
COST_PER_DAY_PACKAGE_A = 50 | |
COST_PER_DAY_UNLIMITED_B = 140 | |
COST_PER_DAY_PACKAGE_B = 100 | |
COST_PER_EXTRA_MILE_B = 1.5 | |
mileage_limit = 200 * duration | |
unlimited_A = duration * COST_PER_DAY_UNLIMITED_A | |
unlimited_B = duration * COST_PER_DAY_UNLIMITED_B | |
if mileage > mileage_limit: | |
package_A = duration * COST_PER_DAY_PACKAGE_A + mileage - mileage_limit | |
package_B = duration * COST_PER_DAY_PACKAGE_B + (mileage - mileage_limit) * COST_PER_EXTRA_MILE_B | |
else: | |
package_A = duration * COST_PER_DAY_PACKAGE_A | |
package_B = duration * COST_PER_DAY_PACKAGE_B | |
if category == "A" and unlimited_A < package_A: | |
saving = package_A - unlimited_A | |
print "Best option: unlimited ($", unlimited_A, ") that is to say $", saving," saving" | |
elif category == "A" and unlimited_A > package_A: | |
saving = unlimited_A - package_A | |
print "Best option: package ($", package_A, ") that is to say $", saving," saving" | |
elif category == "B" and unlimited_B < package_B: | |
saving = package_B - unlimited_B | |
print "Best option: unlimited ($", unlimited_B, ") that is to say $", saving," saving" | |
elif category == "B" and unlimited_B > package_B: | |
saving = unlimited_B - package_B | |
print "Best option: package ($", package_B, ") that is to say $", saving," saving" | |
else: | |
print "Unvalid category input!" | |
#Program with functions | |
#defining the functions | |
def calculate_price_unlimited(mileage, duration, category): | |
if category == "A": | |
unlimited_A = duration * 70 | |
return unlimited_A | |
else: | |
unlimited_B = duration * 140 | |
return unlimited_B | |
def calculate_price_package(mileage, duration, category): | |
mileage_limit = 200 * duration | |
if mileage > mileage_limit: | |
if category == "A": | |
package_A = duration * 50 + mileage - mileage_limit | |
return package_A | |
else: | |
package_B = duration * 100 + (mileage - mileage_limit) * 1.5 | |
return package_B | |
else: | |
if category == "A": | |
package_A = duration * 50 | |
return package_A | |
else: | |
package_B = duration * 100 | |
return package_B | |
#The actual price comparator | |
mileage = input("Mileage? ") | |
duration = input("Duration (in days)? ") | |
category = raw_input("Categorie (A or B)? ") | |
if category == "A": | |
unlimited_A = calculate_price_unlimited(mileage, duration, category) | |
package_A = calculate_price_package(mileage, duration, category) | |
else: | |
unlimited_B = calculate_price_unlimited(mileage, duration, category) | |
package_B = calculate_price_package(mileage, duration, category) | |
if category == "A" and unlimited_A < package_A: | |
saving = package_A - unlimited_A | |
print "Best option: unlimited ($", unlimited_A, ") that is to say $", saving," saving" | |
elif category == "A" and unlimited_A > package_A: | |
saving = unlimited_A - package_A | |
print "Best option: package ($", package_A, ") that is to say $", saving," saving" | |
elif category == "B" and unlimited_B < package_B: | |
saving = package_B - unlimited_B | |
print "Best option: unlimited ($", unlimited_B, ") that is to say $", saving," saving" | |
elif category == "B" and unlimited_B > package_B: | |
saving = unlimited_B - package_B | |
print "Best option: package ($", package_B, ") that is to say $", saving," saving" | |
else: | |
print "Unvalid category input!" | |
#May not be the best but I made it and it works | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
(Une autre fois, fais deux gists si tu as deux programmes.)
Programme sans fonctions
and
et imbriquer les conditionnelles plutôt. Imagine que le testcategory == "A"
prenne une heure: avec ta version tu le fais parfois deux fois, donc ça prend deux heures au lieu d'une.Programme avec fonctions