python dividering med avrundning

Trädvy Permalänk
Medlem
Registrerad
Feb 2014

python dividering med avrundning

Tjenare boys <3

Har ett litet problem som jag undrar över. Om jag har ett värde i python exempelvis 1200 och vill dela det på femhundra och enbart få fram avrundningen neråt så tar jag 1200//500. Då får jag ju siffran två men om jag sedan vill ha fram talet som "inte" dividerades 500 alltså det resterande från divisionen 200. Måste jag ta 1200 -500*2 eller kan jag hämta värdet 200 från den första divisionsavrundningen. Om det inte är uppenbart så ska det vara som variabler.

Tack på förhand

Trädvy Permalänk
Medlem
Plats
Borlänge
Registrerad
Jun 2012

Det är vad modulus gör.

T.ex ger 1200 % 500 = 200, eller 1000 % 500 = 0

Corsair 750D | i5 4670k | ASUS Z87-a | 8GB Corsair Dominator | Asus GTX770-DC2OC | Samsung 840 EVO 250GB | WD 500GB X2

Trädvy Permalänk
Medlem
Registrerad
Feb 2014
Skrivet av reflect:

Det är vad modulus gör.

T.ex ger 1200 % 500 = 200, eller 1000 % 500 = 0

Tack så mycket <3 en annan fråga är det möjligt att göra så att om en variabel inte är jämt delbar på ett värde att det händer något?
Typ som if variabel1 inte jämt delbar på 50:
print("swag")

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Apr 2014

Japp, du kan skriva:

x = ett tal if x % 50 == 0: print('swag')

för om x % y är 0 så är det ju jämnt delbart.

Dator: R9 290 Ref. | i7 2600k | MSI Z77 | In-Win 904 | EVGA Supernova G2 750W
Tangentbord: HHKB PRO 2 | IBM Model M | Dell AT102W | KBP V60 MX Clear
Prylentusiast, Pythonist i dubbel bemärkelse och di-agnostiker.

Trädvy Permalänk
Medlem
Registrerad
Apr 2012
Skrivet av madmaster32:

Tack så mycket <3 en annan fråga är det möjligt att göra så att om en variabel inte är jämt delbar på ett värde att det händer något?
Typ som if variabel1 inte jämt delbar på 50:
print("swag")

Ett annat ord för modulo är restdivision om det skulle hjälpa. Använd modulo operatören (%) så får du svaret. Om något % med något annat blir 0 har det blivit jämt delbart, annars har det inte blivit det.

Chassi: En stor bakpotatis
CPU: En körsbärstomat (OC 4.5 tomater) som kyls av ketchup
Modertkort: En extra-allt pizza
Nätagg: En modulär kålrot
Grafikkort: En fet biff (standardklock 987mHeinz)

Trädvy Permalänk
Medlem
Registrerad
Feb 2014
Skrivet av FilosofN:

Japp, du kan skriva:

x = ett tal if x % 50 == 0: print('swag')

för om x % y är 0 så är det ju jämnt delbart.

Skrivet av Deatlev:

Ett annat ord för modulo är restdivision om det skulle hjälpa. Använd modulo operatören (%) så får du svaret. Om något % med något annat blir 0 har det blivit jämt delbart, annars har det inte blivit det.

Tack så mycket, fick kläm på det nu you guys rock <3

Trädvy Permalänk
Forumledare
Registrerad
Okt 2002
Skrivet av madmaster32:

Tjenare boys <3

Har ett litet problem som jag undrar över. Om jag har ett värde i python exempelvis 1200 och vill dela det på femhundra och enbart få fram avrundningen neråt så tar jag 1200//500. Då får jag ju siffran två men om jag sedan vill ha fram talet som "inte" dividerades 500 alltså det resterande från divisionen 200. Måste jag ta 1200 -500*2 eller kan jag hämta värdet 200 från den första divisionsavrundningen. Om det inte är uppenbart så ska det vara som variabler.

Tack på förhand

Just detta är användningen för den inbyggda funktionen divmod:

>>> kvot, rest = divmod(1200, 500) >>> kvot 2 >>> rest 200

Det är kanske inte ofta man får användning för denna funktion (jag minns en (1) gång när jag fått det), men plötsligt händer det! Det kan vara värt tiden att studera de inbyggda funktionerna så att de sitter väl i minnet, om än man kan klara sig rätt väl utan just divmod.

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.