In: Computer Science
[Python programming]
Functions, lists, dictionary, classes CANNOT BE USED!!!
This assignment will give you more experience on the use of:
1. integers (int)
2. floats (float)
3. conditionals(if statements)
4. iteration(loops)
The goal of this project is to make a fictitious comparison of the federal income. You will ask the user to input their taxable income. Use the income brackets given below to calculate the new and old income tax. For the sake of simplicity of the project we will only consider individuals and not married users. We will also ignore any tax deductions while calculating income tax—they can significantly alter the tax, but add too much complexity for our programming project.
New income tax brackets (2018 and newer)
10% Up to $9,525
12% $9,526 to $38,700
22% $38,701 to $82,500
24% $82,501 to $157,500
32% $157,501 to $200,000
35% $200,001 to $500,000
37% over $500,000
Old income tax brackets (2017 and older)
10% Up to $9,325
15% $9,326 to $37,950
25% $37,951 to $91,900
28% $91,901 to $191,650
33% $191,651 to $416,700
35% $416,701 to $418,400
39.6% over $418,400
Project Description
Your program must meet the following specifications:
1. At program start, prompt the user for their income
2. Repeatedly prompt the user for new income until a negative income is entered.
3. Calculate the income tax using the 2017 and 2018 tax bracket tables above.
4. For each income entered:
a. Calculate the 2017 income tax and store it in a variable.
b. Next calculate the 2018 income tax and store it in a variable
c. Print
i. The income
ii. The 2017 taxi
iii. The 2018 tax
iv. The difference between the 2018 and 2017 tax rounded to cents
v. The difference between the 2018 and 2017 tax as a percentage of the 2017 tax rounded to cents
Assignment Notes
1. To clarify the project specifications, sample output is appended to the end of this document.
2. Use a while loop with a Boolean that keeps looping as long as the income is greater than or equal to zero.
3. Prompt for income before the loop and remember to convert the input string to an int (so you are comparing an int in your Boolean expression). Remember to prompt again at the end (aka “bottom”) of the loop.
4. There will be no error checking in this assignment. If a float or a string is entered at the prompt, the program will crash.
N=1 #assigned The value of N to 1 for first time executable in while loop
while N>0:
N=int(input("Enter your income: "))
if N<1:
break
N1=N #Store the value of N into N1 & N2 for reuse
N2=N
#New income tax brackets (2018 and newer)
if N1<=9525:
N1=N1*0.1
elif N1>=9526 and N1<=38700:
N1=N1*0.12
elif N1>=38701 and N1<=82500:
N1=N1*0.22
elif N1>=82501 and N1<=157500:
N1=N1*0.24
elif N1>=157501 and N1<=200000:
N1=N1*0.32
elif N1>=200001 and N1<=500000:
N1=N1*0.35
else :
N1=N1*0.37
#Old income tax brackets (2017 and older)
if N2<=9325:
N2=N2*0.1
elif N2>=9326 and N2<=37950:
N2=N2*0.15
elif N2>=37951 and N2<=91900:
N2=N2*0.25
elif N2>=91901 and N2<=191650:
N2=N2*0.28
elif N2>=191651 and N2<=416700:
N2=N2*0.33
elif N2>=416701 and N2<=418400:
N2=N2*0.35
else :
N2=N2*0.396
D=N2-N1
P=D*100/N2
print("Income: {}$".format(N))
print("The 2018 TAX for entered income is {:.2f}$".format(N1))
print("The 2017 TAX for entered income is {:.2f}$".format(N2))
print("The difference between the 2018 and 2017: {:.2f}$".format(D))
print("The difference between the 2018 and 2017 tax as a percentage of the 2017: {:.2f}%".format(P)) # we used format method for decimal and formatting
Note: we used "#" for comment in Python