Python abs() Funksjon: Eksempler på absolutt verdi

⚡ Smart oppsummering

Python abs() er en innebygd funksjon som returnerer absoluttverdien av et tall, det vil si avstanden fra null uten fortegn. Den aksepterer heltall, flyttall og komplekse tall, og returnerer størrelsen for komplekse inputtall.

  • 🔢 Absolutt verdi: abs() fjerner fortegnet til et tall og returnerer avstanden fra null, så både abs(-25) og abs(25) gir 25.
  • 🧮 Talltyper: Det enkle argumentet kan være et heltall, et flyttall eller et komplekst tall, og returtypen samsvarer med inputen.
  • 🔟 Kompleks størrelsesorden: For et komplekst tall som (3+10j) returnerer abs() størrelsen, kvadratroten av de kvadrerte reelle og imaginære delene.
  • ???? lister: abs() håndterer ett tall om gangen, så en forståelse som [abs(n) for n in nums] bruker den på tvers av alle elementer.
  • 🇧🇷 abs() vs. math.fabs(): Den innebygde abs()-modulen beholder inputtypen og støtter komplekse tall, mens math.fabs() alltid returnerer et flyttall og trenger matematikkmodulen.
  • 🤖 AI-hjelp: AI-verktøy som GitHub Copilot genererer abs()- og NumPy-kall for np.abs()-oppgaver som gjennomsnittlig absolutt feil fra en kort ledetekst.

Python abs() funksjon

Python abs ()

Python abs () er en innebygd funksjon som er tilgjengelig i standardbiblioteket til PythonDen returnerer den absolutte verdien for det gitte tallet. Den absolutte verdien av et tall er verdien uten å ta hensyn til fortegnet. Tallet kan være et heltall, et flyttall eller et komplekst tall. Hvis det gitte tallet er komplekst, vil den returnere størrelsen.

syntax

Syntaksen til abs()-funksjonen vises nedenfor:

abs(value)

Parametere (verdi)

Inndataverdien som skal gis til abs() for å få den absolutte verdien. Det kan være et heltall, et flytende tall eller et komplekst tall.

Returverdi:

Funksjonen abs() returnerer absoluttverdien for det gitte tallet.

  • Hvis inputen er et heltall, vil returverdien også være et heltall.
  • Hvis inputen er en flyttall, vil returverdien også være en flyttall.
  • Hvis inngangen er et komplekst tall, vil returverdien være størrelsen på inngangen.

Eksempler

Følgende eksempler viser abs()-funksjonen brukt på heltall, flyttall og komplekse verdier.

Code Eksempel 1: Heltall og flyttall

For å få den absolutte verdien av et heltall og et flyttall, sjekk denne koden:

# testing abs() for an integer and float
  int_num = -25
  float_num = -10.50
  print("The absolute value of an integer number is:", abs(int_num))
  print("The absolute value of a float number is:", abs(float_num))

Utgang:

The absolute value of an integer number is: 25
The absolute value of a float number is: 10.5

Eksempel 2: Kompleks tall

For å få den absolutte verdien av et komplekst tall, bruk denne koden:

# testing abs() for a complex number
complex_num = (3+10j)
print("The magnitude of the complex number is:", abs(complex_num))

Utgang:

The magnitude of the complex number is: 10.44030650891055

Hvordan finne den absolutte verdien av en liste i Python

abs()-funksjonen fungerer på et enkelt tall, så å sende en hel liste til den genererer en TypeError. For å bruke den på alle elementer i en liste, bruk en listeforståelsesmetode som kaller abs() på hvert element:

numbers = [12, 30, -33, -22, 77, -100]
abs_numbers = [abs(num) for num in numbers]
print(abs_numbers)

Utgang:

[12, 30, 33, 22, 77, 100]

Forståelsen beholder den opprinnelige rekkefølgen og returnerer en ny liste med positive verdier. Du kan oppnå samme resultat med den innebygde map()-funksjonen, for eksempel. list(map(abs, numbers)), som bruker abs() på hvert element uten å skrive en eksplisitt løkke.

  • Bruk listeforståelse når du også vil filtrere eller transformere verdiene.
  • Bruk map() for et kort, lesbart kall som bruker abs() direkte.
  • For store numeriske datasett er en NumPy-matrise med np.abs() raskere enn en Python sløyfe.

Python abs() vs. math.fabs()

Python tilbyr to måter å få en absoluttverdi på: den innebygde abs()-funksjonen og matematikkmodulens fabs()-funksjon. De ser like ut, men oppfører seg forskjellig:

import math

print(abs(-7))          # 7 (int is unchanged)
print(math.fabs(-7))    # 7.0 (float result)

Utgang:

7
7.0

De viktigste forskjellene mellom de to funksjonene er:

  • Returtype: abs() bevarer inputtypen og returnerer et heltall for et heltall, mens math.fabs() alltid returnerer et flyttall.
  • Importere: abs() er alltid tilgjengelig, men math.fabs() krever import math.
  • Komplekse tall: abs() returnerer størrelsen på et komplekst tall, mens math.fabs() genererer en TypeError for kompleks input.

Praktiske anvendelser av Python abs() funksjon

Fordi den forkaster fortegnsinformasjon, er abs() nyttig når bare størrelsen på en verdi betyr noe og ikke retningen. Et vanlig eksempel er å finne differansen mellom to avlesninger:

temp_morning = 12
temp_night = -5
print("Temperature change:", abs(temp_morning - temp_night))

Utgang:

Temperature change: 17

Daglig bruk av absoluttverdien inkluderer:

  • Avstander og forskjeller: måle avstanden mellom to punkter, temperaturer eller tidsstempler uavhengig av hvilken verdi som er størst.
  • Feilmålinger: beregne den absolutte feilen mellom en predikert verdi og en faktisk verdi.
  • Toleransekontroller: teste om et resultat er nært nok et mål, som i abs(actual - expected) < 0.01.
  • Finans: rapportering av størrelsen på en gevinst eller et tap uten fortegn.

Som round()-funksjonen, abs() er en innebygd modul du kan kalle direkte uten å importere noen modul.

Spørsmål og svar

Nei. abs() returnerer en ny verdi og endrer aldri argumentet, fordi tall i Python er uforanderlige. For å beholde resultatet, tilordner du det til en variabel, for eksempel positiv = abs(tall). Den opprinnelige variabelen beholder fortsatt sin fortegnsbestemte verdi.

Nei. Å sende en streng genererer TypeError: ugyldig operandtype for abs(): 'str', fordi abs() bare godtar heltall, flyttall eller komplekse tall. For å måle en streng i stedet, bruk len(), som returnerer hvor mange tegn den inneholder.

Du kan beregne det manuelt. For en verdi x returnerer max(x, -x) den absolutte verdien, og (x ** 2) ** 0.5 fungerer også for reelle tall. Den innebygde abs()-funksjonen er imidlertid tydeligere, raskere og håndterer også komplekse tall.

Nei. Den vertikale streknotasjonen |x| er matematisk, ikke Python syntaks; i Python |-symbolet er den bitvise ELLER-operatoren. For å få en absoluttverdi må du kalle den innebygde abs()-funksjonen, for eksempel abs(-8), som returnerer 8.

__abs__ er dunder-metoden som abs() kaller bak kulissene. Når du skriver abs(obj), Python kjører obj.__abs__(). Ved å definere __abs__ i din egen klasse kan abs() jobbe på egendefinerte objekter, for eksempel en vektor eller en pengetype.

Bruk de vektoriserte versjonene i stedet for en løkke. NumPy sin np.abs(array) returnerer en ny array der hvert element blir positivt, og en pandas-serie eksponerer Series.abs(). Begge bruker absoluttverdien på tvers av alle elementene samtidig, noe som er raskere for store datasett.

abs() ligger til grunn for feil- og avstandsmålinger. Gjennomsnittlig absolutt feil (MAE) og L1-tap summerer de absolutte forskjellene mellom prediksjoner og mål, og absolutte verdier måler gradientstørrelser. For hele arrayer bruker NumPy np.abs() den samme operasjonen effektivt på tvers av hvert element.

GitHub Copilot foreslår abs()-kall, listeforståelser som [abs(n) for n in nums], og NumPy np.abs()-linjer direkte fra en kort kommentar. Den kan også stille opp en gjennomsnittlig absolutt feilfunksjon, slik at du kan bekrefte logikken i stedet for å skrive standardtekst.

Oppsummer dette innlegget med: