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 - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor