On 08/10/13 21:38, Thabile Rampa wrote:

deductions. I have seemingly worked everything fine until the part where
I am supposed to tell them what tax Band they are in (i.e 1,2,3 or 4).
My code is like this:

taxBAND = None
GrossSalary = None
costs = None
taxdeducted =None
netSalary = None

You don't really need these since you initialise everything below...
But thats not your problem.

line ="-"*80
name =""

while not name:
      name =raw_input("ENTER NAME HERE: ")
while not costs:
     costs =float(raw_input("enter costs here: "))
while not GrossSalary:
     GrossSalary= int(raw_input("enter your gross salary: "))

OK so far

if (GrossSalary < 50000):
     taxdeducted= 0.05*(GrossSalary -costs)
     netSalary = GrossSalary - taxdeducted
     while GrossSalary < 50000:

Here is a problem.
You already know the salary is less than 50000 since you tested it in the if statement. So now you create a loop that will always be true so it will loop forever.

          print taxBAND == 1

And you compound that by trying to print the result of a
Boolean expression which will be either True or False.
I suspect you actually want to print(or store?) the
taxBAND (unusual capitalization BTW)

elif (GrossSalary >= 50000 and GrossSalary < 150000):
      taxdeducted = 0.1*(GrossSalary - costs)
      netSalary = GrossSalary - taxdeducted

And here you make no attempt to set the taxBAND?

print line
print "\t\t BURS STATEMENT: ",name
print line
print "Gross", "\t Costs", "\t Tax BAND", "\tTax Deducted", "\t Net Salary"
print
GrossSalary,"\t",costs,"\t\b",taxBAND,"\t",taxdeducted,"\t\t",netSalary

Nice try but you'll find it easier to use the string format operation to create fixed length fields.
And that will still depend on your user having fixed space fonts.


1.
Traceback (most recent call last):
File "X:/xxx/Xxxx.py", line 30, in <module>
taxBAND += 1
TypeError: unsupported operand type (s) for +=: 'NoneType' and 'int'

Because you set taxBAND to None initially.
You probably just wanted to set taxBAND to 1 not add it.

2.
Traceback (most recent call last):
File "X:/xxx/Xxxx.py", line 30, in <module>
taxBAND = I
NameError: Name 'I' is not defined

And that's true too. You either wanted to set it to 1
or to 'I' (with quotes)

(the first two errors were before i added the line "while GrossSalary <
50000:")

Probablty thats correct, but you want assdignment not equality test

ie
taxBAND = 1

3.
Traceback (most recent call last):
File "X:/xxx/Xxxx.py", line 31, in <module>
taxBAND += 1
TypeError: unsupported operand type (s) for +=: 'NoneType' and 'int'

See above

4.
Traceback (most recent call last):
File "X:/xxx/Xxxx.py", line 31, in <module>
taxBAND = I
NameError: Name 'I' is not defined

And again.

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to