Gå til innhold

Anbefalte innlegg

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 av RedShirtGuy
Lenke til kommentar
Videoannonse
Annonse

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.

  • Liker 1
Lenke til kommentar

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)
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*(100-c))
[/Code]

 

fåkke error men får ikke svaret (Tok vekk parangtesene rundt 100

Endret av RedShirtGuy
Lenke til kommentar

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 :D

Endret av RedShirtGuy
Lenke til kommentar
Gjest Slettet+9871234

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 av Slettet+9871234
Lenke til kommentar

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 :hmm:

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 av SNIPPSAT
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...