Permalänk

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

Permalänk
Medlem

Det är vad modulus gör.

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

Visa signatur

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

Permalänk
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")

Permalänk
Medlem

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.

missade lite i koden
Visa signatur

:)

Permalänk
Medlem
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.

Visa signatur

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)

Permalänk
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

Permalänk
Hedersmedlem
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.

Visa signatur

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