SmoothCriminal Skrevet 23. mars 2012 Del Skrevet 23. mars 2012 (endret) Hei skal lage et lite matte-program for timen. Formålet er og kunne regne ut kjapt bruttolønna men får ikke til regnestykker til i python # Copyright 2012 Fontpage Inc. # Licensed under the Gnu General Public License Version 3, 29 June 2007 # http://www.gnu.org/licenses/gpl-3.0.html # Fontpages Math Solver # http://www.fontpage.deviantart.com (eller noe her!) import sys print 'How much is the houerly payment' a=raw_input() print print 'How many houers did she work' b=raw_input() print print 'How many % did she pay in taxes' c=raw_input() print print a*(b*(100-c)) print Der der den fåreløpige coden om noen kunne forklart meg hvordan og gjøre dette så hadde jeg satt meget pris på det. Erroren jeg får er Traceback (most recent call last): File "math.py", line 19, in &--#60;module&--#62; print a*(b*(100-c))TypeError: unsupported operand type(s) for -: 'int' and 'str'[/Code] Endret 26. mars 2012 av RedShirtGuy Lenke til kommentar
Martin HaTh Skrevet 23. mars 2012 Del Skrevet 23. mars 2012 Når du leser inn input så blir variablene strenger, ikke tall, altså "60", og ikke 60. Python skjønner ikke hvordan man tar 60 - "20", siden det, for python, er like ulogisk som 48 + "Martin". Det du må gjøre er å gjøre om inputen til tall(int). Letteste er å bare sette a=int(a) på alle variablene, men dette kan jo gi problemer dersom inputen faktisk er en eller fler bokstaver. 1 Lenke til kommentar
SmoothCriminal Skrevet 23. mars 2012 Forfatter Del Skrevet 23. mars 2012 (endret) Når du leser inn input så blir variablene strenger, ikke tall, altså "60", og ikke 60. Python skjønner ikke hvordan man tar 60 - "20", siden det, for python, er like ulogisk som 48 + "Martin". Det du må gjøre er å gjøre om inputen til tall(int). Letteste er å bare sette a=int(a) på alle variablene, men dette kan jo gi problemer dersom inputen faktisk er en eller fler bokstaver. Jeg gjorde slik du sa print 'How much is the houerly payment'a=raw_input()a=int(a)printprint 'How many houers did she work'b=raw_input()b=int(b)printprint 'How many % did she pay in taxes'c=raw_input()c=int(c)printprint a*(b*(100-c))[/Code] fåkke error men får ikke svaret (Tok vekk parangtesene rundt 100 Endret 23. mars 2012 av RedShirtGuy Lenke til kommentar
SmoothCriminal Skrevet 23. mars 2012 Forfatter Del Skrevet 23. mars 2012 (endret) Bare glem det fikk det til, Takk for hjelpen # Copyright 2012 Fontpage Inc. # Licensed under the Gnu General Public License Version 3, 29 June 2007 # http://www.gnu.org/licenses/gpl-3.0.html # Fontpages Math Solver # http://www.fontpage.deviantart.com (eller noe her!) import sys import math print 'How much is the houerly payment' a=raw_input() a=int(a) print print 'How many houers did she work' b=raw_input() b=int(b) print print 'How many % did she pay in taxes' c=raw_input() c=int(c) print print a*(b*(1-(c/100))) print ^my final code Endret 26. mars 2012 av RedShirtGuy Lenke til kommentar
Gjest Slettet+9871234 Skrevet 23. mars 2012 Del Skrevet 23. mars 2012 (endret) Hei skal lage et lite matte-program for timen. Formålet er og kunne regne ut kjapt bruttolønna men får ikke til regnestykker til i python Man betaler ikke skatt på bruttolønn. Er skatteprosenten et heltall (int)? Formelen for nettolønn er: a*b*(1-(c/100) ) Så timelønn 400, timer arbeidet 1000 og skattetrekk på 40 prosent burde gi: 400*1000*0.6=240000. Jeg ville benyttet float og ikke int. Resultatet kan nemlig avhenge av hvilken versjon av Python du bruker, da divisjonsoperatoren på heltall er endret så vidt jeg husker fra versjon 2.+ til 3.+. Endret 23. mars 2012 av Slettet+9871234 Lenke til kommentar
snippsat Skrevet 23. mars 2012 Del Skrevet 23. mars 2012 (endret) Kan korte den ned litt,og gi et eksempel der jeg bruker et par funksjoner og tar med feilbehanling. a,b,c er dårlige variablenavn,selv i en så kort kode som dette blir det fort forvirrende hva var b igjen houer_pay = float(raw_input('How much is the houerly payment')) work_houers = float(raw_input('How many houers did she work')) tax = float(raw_input('How many % did she pay in taxes')) print houer_pay * work_houers * (1-(tax/100)) Gjør jobben den skal. For og strukturere koden bedere kan man funksjoner/klasser. Det går fint og droppe dette når koden er så kort som nå,tar det med mere som et eksempel viss du vil lære litt mere om python. Viss man skiver feil som og bruke en bokstav vil det bli kræsj,for og unngå dette bruker man man exception handling(feilbehanling). Måtte bruke pastebin,har noen tips om hvordan python skal se riktig ut etter forum oppdateringen? http://pastebin.com/FLvW3jRp Her bruker jeg normal "4 space indentation" i python. Når jeg bruker Kode tag kommer dette ut. while True: try: houer_pay = float(raw_input('How much is the houerly payment')) Endret 23. mars 2012 av SNIPPSAT Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå