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()