Hi Chidinma, I'm afraid it is very difficult for me to understand your code, because your email program (Yahoo mail perhaps?) has mangled the code and put it all on one single line:
On Sat, Sep 03, 2016 at 09:45:17PM +0000, Chidinma via Tutor wrote: > def calculate_tax(dict_inp): result = {} if dict_inp == {}: result = > "Please enter valid inputs" else: for k, v in dict_inp.items(): try: > x = int(dict_inp[k]) except ValueError: print("That's not > an int!") break if(x): if x > 50000: tax = ((x - > 50000) * 0.3) + 4812.5 + 2110 + 1530 + 900 result[k] = tax > elif x > 30750: tax = ((x - 30750) * 0.25) + 2110 + 1530 + 900 > result[k] = tax elif x > 20200: tax = ((x - 20200) * 0.2) > + 1530 + 900 result[k] = tax elif x > 10000: tax = > ((x - 10000) * 0.15) + 900 result[k] = tax elif x > 1000: > tax = ((x - 1000) * 0.1) result[k] = tax else: > tax = 0 result[k] = tax else: print("Yearly income is > not an integer") return result dict_inp = {'Alex': 500,'James': > 20500,'Kinuthia': 70000}#dict_inp = {200: 1500,300: 20500,400: > 70000}print(calculate_tax(dict_inp)) You may be able to prevent that by turning of "formatted text", or "rich text", or "HTML email", or whatever your email program calls this feature. > But I get the result: > > THERE IS AN ERROR/BUG IN YOUR CODE How are you running this? Python doesn't normally print "THERE IS AN ERROR/BUG IN YOUR CODE". My guess is that you are using one of the on-line Python courses where you type your code into the web page. Am I right? Which one? > Results: Internal Error: runTests aborted: TestOutcomeEvent(handled=False, > test=, result=, outcome='error', exc_info=(, AttributeError("'int' object has > no attribute 'items'",), ), reason=None, expected=False, shortLabel=None, > longLabel=None) is not JSON serializable{'James': 2490.0, 'Alex': 0, > 'Kinuthia': 15352.5} That error doesn't seem to have anything to do with your code. Are you sure it is connected to the code you give above? If you are using a website, it might be a bug in the website. > But when i take away the .items(), i get: > for k, v in dict_inp: > ValueError: too many values to unpack The first thing to confirm that dict_inp is a dict. Run: print( isinstance(dict_inp, dict) ) just before that "for ..." line. If it prints True, then change the for line to: for k, v in dict_inp.items(): What happens then? _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor