Vinnaren i pepparkakshustävlingen!
2024-04-27, 03:45
  #1
Medlem
Hej hörni! Jag har min första uppgift i Python just nu, och den är att skapa ett program som beräknar ett pris med moms inkluderat, när man matar in priset utan moms (25%). Skapade ett väldigt simpelt program vilket var följande:
pris=(100)
moms=(1.25)
PrisMedMoms=(pris*moms)
print(PrisMedMoms)

Det verkade funka. Men det känns för simpelt då jag inte använder nån input då uppgiften säger
"Skapa ett Python-program som beräknar pris inkl. 25% moms
Som indata (input) skriver man pris exkl. moms t.ex. 100
Som utdata får man pris inkl. moms t.ex. 125.0"
Har inte använt mig av varken input eller typ int eller float. Pillade runt lite med dessa med nu blir det bara "type error".
Är det någon av er som kan hjälpa mig piffa till koden? och förklara den. Tack på förhand!
Citera
2024-04-27, 06:20
  #2
Medlem
För det första behöver du inga parenteser när du definierar variabler i Python. Det ser bara dumt ut.
För det andra, om man ska vara korrekt, är moms = 0.25 och prismedmoms = pris * (1 + moms)
För det tredje är det dålig praxis i Python att döpa variabler till något som börjar med Versaler.

Nu till din fråga. En snabb sökning med din favoritsökmotor ger snabbt och bra svar. T.ex. https://www.geeksforgeeks.org/python-input-function/

Inamtning läses per default in som en textsträng, vilket inte går att göra matematiska övningar med. Så titta på det allra första exemplet längst upp på den länkade sidan, och plocka antingen konvertering av inmatningen till heltal (integer) eller decimaltal (float).


TLDR:
pris = float(input("Ange pris exkl. moms: "))
Citera
2024-04-27, 06:22
  #3
Medlem
bithaxs avatar
Citat:
Ursprungligen postat av ocfodD1z
För det första behöver du inga parenteser när du definierar variabler i Python. Det ser bara dumt ut.
För det andra, om man ska vara korrekt, är moms = 0.25 och prismedmoms = pris * (1 + moms)
För det tredje är det dålig praxis i Python att döpa variabler till något som börjar med Versaler.

Nu till din fråga. En snabb sökning med din favoritsökmotor ger snabbt och bra svar. T.ex. https://www.geeksforgeeks.org/python-input-function/

Inamtning läses per default in som en textsträng, vilket inte går att göra matematiska övningar med. Så titta på det allra första exemplet längst upp på den länkade sidan, och plocka antingen konvertering av inmatningen till heltal (integer) eller decimaltal (float).


TLDR:
pris = float(input("Ange pris exkl. moms: "))

Jag kan inte python, men borde man inte vara försiktig med att använda float för priser? I Java eller C# skulle man använda decimal / BigDecimal.

Jag jobbar på bank fö.
Citera
2024-04-27, 09:41
  #4
Moderator
vhes avatar
Citat:
Ursprungligen postat av bithax
Jag kan inte python, men borde man inte vara försiktig med att använda float för priser? I Java eller C# skulle man använda decimal / BigDecimal.

Jag jobbar på bank fö.

Det stämmer att även Python har de vanliga problemen associerade med floats. Jag tror dock inte att det är den typ av problem TS övningsuppgift handlar om.
Citera
2024-04-27, 13:28
  #5
Moderator
Pontiac-Garages avatar
Citat:
Ursprungligen postat av Octoxite
Har inte använt mig av varken input eller typ int eller float. Pillade runt lite med dessa med nu blir det bara "type error".

Momssatsen är ju float. Multiplicerar du int och float blir produkten i float per default.

Avrunda bara?
Citera
2024-04-27, 14:14
  #6
Medlem
Citat:
Ursprungligen postat av ocfodD1z
För det första behöver du inga parenteser när du definierar variabler i Python. Det ser bara dumt ut.
För det andra, om man ska vara korrekt, är moms = 0.25 och prismedmoms = pris * (1 + moms)
För det tredje är det dålig praxis i Python att döpa variabler till något som börjar med Versaler.

Nu till din fråga. En snabb sökning med din favoritsökmotor ger snabbt och bra svar. T.ex. https://www.geeksforgeeks.org/python-input-function/

Inamtning läses per default in som en textsträng, vilket inte går att göra matematiska övningar med. Så titta på det allra första exemplet längst upp på den länkade sidan, och plocka antingen konvertering av inmatningen till heltal (integer) eller decimaltal (float).


TLDR:
pris = float(input("Ange pris exkl. moms: "))

Tack så hemskt mycket! Är helt ny med detta som sagt så visste knappt vad jag skulle söka på ens för att hitta det jag letade efter. Frågade min kompis som pluggar it-forensik också som kunde hjälpa mig ytterligare. Ibland måste man nog ställa lite "dumma frågor". Återigen tusen tack!
Citera
2024-04-27, 14:28
  #7
Medlem
Citat:
Ursprungligen postat av Octoxite
Hej hörni! Jag har min första uppgift i Python just nu, och den är att skapa ett program som beräknar ett pris med moms inkluderat, när man matar in priset utan moms (25%). Skapade ett väldigt simpelt program vilket var följande:
pris=(100)
moms=(1.25)
PrisMedMoms=(pris*moms)
print(PrisMedMoms)

Det verkade funka. Men det känns för simpelt då jag inte använder nån input då uppgiften säger
"Skapa ett Python-program som beräknar pris inkl. 25% moms
Som indata (input) skriver man pris exkl. moms t.ex. 100
Som utdata får man pris inkl. moms t.ex. 125.0"
Har inte använt mig av varken input eller typ int eller float. Pillade runt lite med dessa med nu blir det bara "type error".
Är det någon av er som kan hjälpa mig piffa till koden? och förklara den. Tack på förhand!

Lägger till lite felkontroll

Kod:
momsSats = 25    
prisIn = input("Ange Pris Utan Moms:")
try:
    prisInSomTal = float(prisIn)
    print(f'Priset med moms: {prisInSomTal*(1+momsSats/100)}')
except ValueError as err:
    print('Felaktigt inmatat pris in')
Citera
2024-05-03, 21:38
  #8
Medlem
Sados avatar
Citat:
Ursprungligen postat av ocfodD1z
För det första behöver du inga parenteser när du definierar variabler i Python. Det ser bara dumt ut.
Nja, det ser inte bara dumt ut, utan man deklarerar väl en tuple med ett element.
Citera
2024-05-03, 21:44
  #9
Moderator
vhes avatar
Citat:
Ursprungligen postat av Sado
Nja, det ser inte bara dumt ut, utan man deklarerar väl en tuple med ett element.

Nej, inte utan ett kommatecken.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback