Add exercise 9c
This commit is contained in:
parent
2f480c0083
commit
d472539f38
30
Exercise 2/11b.py
Normal file
30
Exercise 2/11b.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
from math import sqrt
|
||||||
|
|
||||||
|
def getValues():
|
||||||
|
while True:
|
||||||
|
values = input('Gi inn en andregradsliknings a, b og c separert med mellomrom:\n\t')
|
||||||
|
try:
|
||||||
|
splitValues = values.split(' ')
|
||||||
|
assert len(splitValues) == 3
|
||||||
|
return {
|
||||||
|
'a': int(splitValues[0]),
|
||||||
|
'b': int(splitValues[1]),
|
||||||
|
'c': int(splitValues[2])
|
||||||
|
}
|
||||||
|
except ValueError:
|
||||||
|
print('Sørg for at alle tallene er heltall.\n')
|
||||||
|
except AssertionError:
|
||||||
|
print('Det skal bare være 3 tall.\n')
|
||||||
|
|
||||||
|
values = getValues()
|
||||||
|
d = values['b']**2 - 4 * values['a'] * values['c']
|
||||||
|
|
||||||
|
expression = f'{values["a"]}x^2 + {values["b"]}x + {values["c"]}'
|
||||||
|
if d > 0:
|
||||||
|
roots = [ (-values['b'] + sqrt(d)) / (2 * values['a']), (-values['b'] - sqrt(d)) / (2 * values['a'])]
|
||||||
|
print(f'Andregradsligningen {expression} har de to reelle løsningene {roots[0]} og {roots[1]}')
|
||||||
|
elif d == 0:
|
||||||
|
root = (-values['b'] + sqrt(d)) / (2 * values['a'])
|
||||||
|
print(f'Andregradsligningen {expression} har en reell dobbelrot {root}')
|
||||||
|
else:
|
||||||
|
print(f'Andregradsligningen {expression} har to imaginære løsninger')
|
@ -1,30 +0,0 @@
|
|||||||
INFO = f"""INFO
|
|
||||||
Dette programmet besvarer om din utleie av egen bolig er skattepliktig.
|
|
||||||
Først trenger vi å vite hvor stor del av boligen du har leid ut.
|
|
||||||
Angi dette i prosent, 100 betyr hele boligen, 50 betyr halve,
|
|
||||||
20 en mindre del av boligen som f.eks. en hybel. """
|
|
||||||
|
|
||||||
HLINE = '----------------------------------------------------------------------'
|
|
||||||
|
|
||||||
print(INFO)
|
|
||||||
print(HLINE)
|
|
||||||
print('DATAINNHENTING:')
|
|
||||||
|
|
||||||
percentRented = float(input('Oppgi hvor mye av boligen som ble utleid: '))
|
|
||||||
rentIncome = float(input('Skriv inn hva du har hatt i leieinntekt: '))
|
|
||||||
|
|
||||||
# Hvis du bruker minst halvparten av boligen du eier til eget bruk, beregnet etter utleieverdi, er det skattefritt å leie ut resten.
|
|
||||||
# percentRented <= 50 => hasTax = false
|
|
||||||
# Leier du ut mer enn halvparten av egen bolig, men for under 20 000 kr i året er det også skattefritt.
|
|
||||||
# rentIncome < 20000 => hasTax = false
|
|
||||||
# Leier du ut hele eller mer enn halvparten av egen bolig for over 20 000 kr i året er samtlige leieinntekter for hele året skattepliktige.
|
|
||||||
# else hasTax = true
|
|
||||||
|
|
||||||
hasTax = percentRented > 50 and rentIncome >= 20000
|
|
||||||
hasTaxString = 'Inntekten er skattepliktig' if hasTax else 'Inntekten er ikke skattepliktig'
|
|
||||||
|
|
||||||
print(HLINE)
|
|
||||||
print('SKATTEBEREGNING')
|
|
||||||
print (hasTaxString)
|
|
||||||
if hasTax:
|
|
||||||
print(f'Skattepliktig beløp er {rentIncome}')
|
|
18
Exercise 2/9 - Skatteetaten/9c.py
Normal file
18
Exercise 2/9 - Skatteetaten/9c.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
from t9a import mainBranch
|
||||||
|
|
||||||
|
from t9b import fritidsboligBranch, secondaryHouseBranch, safeQuestion
|
||||||
|
|
||||||
|
choices = ['egen bolig', 'sekundærbolig', 'fritidsbolig']
|
||||||
|
choices.extend([choice.capitalize() for choice in choices])
|
||||||
|
|
||||||
|
choice = safeQuestion(
|
||||||
|
question='Skriv inn hustype for skatteutregning (egen bolig, sekundærbolig, fritidsbolig): ',
|
||||||
|
choices=choices
|
||||||
|
)
|
||||||
|
|
||||||
|
if choice in ['egen bolig', 'Egen bolig']:
|
||||||
|
mainBranch()
|
||||||
|
elif choice in ['sekundærbolig', 'Sekundærbolig']:
|
||||||
|
secondaryHouseBranch()
|
||||||
|
else:
|
||||||
|
fritidsboligBranch()
|
30
Exercise 2/9 - Skatteetaten/t9a.py
Normal file
30
Exercise 2/9 - Skatteetaten/t9a.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
INFO = f"""INFO
|
||||||
|
Dette programmet besvarer om din utleie av egen bolig er skattepliktig.
|
||||||
|
Først trenger vi å vite hvor stor del av boligen du har leid ut.
|
||||||
|
Angi dette i prosent, 100 betyr hele boligen, 50 betyr halve,
|
||||||
|
20 en mindre del av boligen som f.eks. en hybel. """
|
||||||
|
|
||||||
|
HLINE = '----------------------------------------------------------------------'
|
||||||
|
|
||||||
|
def mainBranch():
|
||||||
|
print('DATAINNHENTING:')
|
||||||
|
|
||||||
|
percentRented = float(input('Oppgi hvor mye av boligen som ble utleid: '))
|
||||||
|
rentIncome = float(input('Skriv inn hva du har hatt i leieinntekt: '))
|
||||||
|
|
||||||
|
hasTax = percentRented > 50 and rentIncome >= 20000
|
||||||
|
hasTaxString = 'Inntekten er skattepliktig' if hasTax else 'Inntekten er ikke skattepliktig'
|
||||||
|
|
||||||
|
print(HLINE)
|
||||||
|
print('SKATTEBEREGNING')
|
||||||
|
print (hasTaxString)
|
||||||
|
if hasTax:
|
||||||
|
print(f'Skattepliktig beløp er {rentIncome}')
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print(INFO)
|
||||||
|
print(HLINE)
|
||||||
|
mainBranch()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
86
Exercise 2/9 - Skatteetaten/t9b.py
Normal file
86
Exercise 2/9 - Skatteetaten/t9b.py
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
INFO = """INFO
|
||||||
|
Dette programmet besvarer om din utleie en annen type bolig,
|
||||||
|
her sekundær- eller fritidsbolig, er skattepliktig.
|
||||||
|
Først trenger vi å vite om du leier ut en sekundær- eller en fritidsbolig."""
|
||||||
|
|
||||||
|
HLINE = '---------------------------------------------------------------------'
|
||||||
|
|
||||||
|
FRITIDSBOLIG_INFO = """INFO
|
||||||
|
Du har valgt fritidsbolig.
|
||||||
|
Nå trenger vi først å vite om fritidsboligen(e) primært brukes til utleie eller fritid.
|
||||||
|
Deretter trenger vi å vite hvor mange fritidsbolig(er) du leier ut.
|
||||||
|
Til slutt trenger vi å vite hvor store utleieinntekter du har pr. fritidsbolig."""
|
||||||
|
|
||||||
|
SECONDARYHOUSE_INFO = """INFO
|
||||||
|
Du har valgt sekundærbolig.
|
||||||
|
Nå trenger vi først å vite hvor mange sekundærbolig(er) du leier ut.
|
||||||
|
Deretter trenger vi å vite hvor store utleieinntekter du har pr. sekundærbolig."""
|
||||||
|
|
||||||
|
def safeQuestion(question, choices):
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
answer = input(question)
|
||||||
|
assert answer in choices
|
||||||
|
return answer
|
||||||
|
except AssertionError:
|
||||||
|
print('Skriv inn enten', ', '.join(choices[:-1]), 'eller', choices[-1])
|
||||||
|
|
||||||
|
def taxEvaluation(housetype, houseAmount, rentPerHouse, hasRentingPurpose=False):
|
||||||
|
hasTax = True
|
||||||
|
print()
|
||||||
|
print(HLINE)
|
||||||
|
print('SKATTEBEREGNING:')
|
||||||
|
|
||||||
|
|
||||||
|
def fritidsboligBranch():
|
||||||
|
print(FRITIDSBOLIG_INFO)
|
||||||
|
print(HLINE)
|
||||||
|
print('DATAINNHENTING:')
|
||||||
|
housePurposeIsRenting = safeQuestion(
|
||||||
|
'Skriv inn formålet med fritidsboligen(e): ',
|
||||||
|
['Utleie', 'utleie', 'Fritid', 'fritid']
|
||||||
|
) in ['Utleie', 'utleie']
|
||||||
|
houseAmount = int(input('Skriv inn antallet fritidsboliger du leier ut: '))
|
||||||
|
rentPerHouse = int(input('Skriv inn utleieinntekten pr. fritidsbolig: '))
|
||||||
|
print()
|
||||||
|
print(HLINE)
|
||||||
|
print('SKATTEBEREGNING')
|
||||||
|
|
||||||
|
hasTax = housePurposeIsRenting or rentPerHouse > 10000
|
||||||
|
if hasTax:
|
||||||
|
print('Inntekten er skattepliktig')
|
||||||
|
if not housePurposeIsRenting:
|
||||||
|
print(f'Overskytende beløp pr. fritidsbolig er {rentPerHouse - 10000}')
|
||||||
|
|
||||||
|
housePurposeDeduction = 0 if housePurposeIsRenting else 10000
|
||||||
|
taxedRentPerHouse = (rentPerHouse - housePurposeDeduction) * 85/100
|
||||||
|
|
||||||
|
print(f'Skattepliktig inntekt pr. fritidsbolig er {taxedRentPerHouse}')
|
||||||
|
print(f'Totalt skattepliktig beløp er {houseAmount * taxedRentPerHouse}')
|
||||||
|
else:
|
||||||
|
print('Inntekten er ikke skattepliktig')
|
||||||
|
|
||||||
|
def secondaryHouseBranch():
|
||||||
|
print(SECONDARYHOUSE_INFO)
|
||||||
|
print(HLINE)
|
||||||
|
print('DATAINNHENTING:')
|
||||||
|
houseAmount = int(input('Skriv inn antallet sekundærboliger du leier ut: '))
|
||||||
|
rentPerHouse = int(input('Skriv inn utleieinntekten pr. sekundærbolig: '))
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print(INFO)
|
||||||
|
print(HLINE)
|
||||||
|
print('DATAINNHENTING:')
|
||||||
|
houseType = safeQuestion(
|
||||||
|
'Skriv inn type annen bolig (sekundærbolig/fritidsbolig) du har leid ut: ',
|
||||||
|
['Fritidsbolig', 'fritidsbolig', 'Sekundærbolig', 'sekundærbolig']
|
||||||
|
)
|
||||||
|
print()
|
||||||
|
|
||||||
|
if houseType in ['Fritidsbolig', 'fritidsbolig']:
|
||||||
|
fritidsboligBranch()
|
||||||
|
else:
|
||||||
|
secondaryHouseBranch()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user