Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [0,10] <-> a
- ]10,77] <-> b
- ]77,inf[ <-> c
- # Bad style
- provSum=0
- # TRIAL 1: messy if-clauses
- for sold in getSelling():
- if (sold >=0 & sold <7700):
- rate =0.1
- else if (sold>=7700 & sold <7700):
- #won't even correct mistakes here because it shows how not to do things
- rate =0.15
- else if (sold>=7700):
- rate =0.20
- # TRIAL 2: messy, broke it because it is getting too hard to read
- provisions= {"0|2000":0.1, "2000|7700":0.15, "7700|99999999999999":0.20}
- if int(sold) >= int(border.split("|")[0]) & int(sold) < int(border.split("|")[1]):
- print sold, rate
- provSum = provSum + sold*rate
- limits = [0, 2000, 7700]
- rates = [0.1, 0.15, 0.2]
- index = bisect.bisect(limits, sold) - 1
- if index >= 0:
- rate = rates[index]
- else:
- # sold is negative
- if sold >= 7700:
- rate = 0.2
- elif sold >= 2000:
- rate = 0.15
- elif sold >= 0:
- rate = 0.1
- else:
- # sold is negative
- if (sold >=0 & sold <7700):
- if 0 <= sold < 7700:
- provisions = {(0, 2000) : 0.1, (2000,7700):0.15, (7700, float("inf")):0.20}
- # loop though the items and find the first that's in range
- for (lower, upper), rate in provisions.iteritems():
- if lower <= sold < upper:
- break # `rate` remains set after the loop ..
- # which pretty similar (see comments) to
- rate = next(rate for (lower, upper), rate in
- provisions.iteritems() if lower <= sold < upper)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement