Python abs() Funktion: Eksempler på absolut værdi

⚡ Smart opsummering

Python abs() er en indbygget funktion, der returnerer den absolutte værdi af et tal, dvs. dets afstand fra nul uden fortegn. Den accepterer heltal, flydende tal og komplekse tal og returnerer størrelsen for komplekse input.

  • 🔢 Absolut værdi: abs() fjerner fortegnet for et tal og returnerer dets afstand fra nul, så både abs(-25) og abs(25) giver 25.
  • 🧮 Nummertyper: Det enkelte argument kan være et heltal, et flydende tal eller et komplekst tal, og returtypen matcher inputtet.
  • 🔟 Kompleks størrelsesorden: For et komplekst tal som (3+10j) returnerer abs() dets størrelse, kvadratroden af ​​de kvadrerede reelle og imaginære dele.
  • ???? Lister: abs() håndterer ét tal ad gangen, så en forståelse som [abs(n) for n in nums] anvender den på tværs af alle elementer.
  • ⚖️ abs() vs. math.fabs(): Den indbyggede abs() beholder inputtypen og understøtter komplekse tal, mens math.fabs() altid returnerer en float og kræver math-modulet.
  • 🤖 AI assistance: AI-værktøjer som GitHub Copilot genererer abs()- og NumPy-kald af typen np.abs() til opgaver som f.eks. gennemsnitlig absolut fejl fra en kort prompt.

Python abs() Funktion

Python abs()

Python abs() er en indbygget funktion, der er tilgængelig i standardbiblioteket for PythonDen returnerer den absolutte værdi for det givne tal. Den absolutte værdi af et tal er værdien uden hensyntagen til dets fortegn. Tallet kan være et heltal, et flydende tal eller et komplekst tal. Hvis det givne tal er komplekst, returnerer den dets størrelse.

Syntaks

Syntaksen for abs()-funktionen er vist nedenfor:

abs(value)

Parametre (værdi)

Den inputværdi, der skal gives til abs() for at få den absolutte værdi. Det kan være et heltal, et flydende tal eller et komplekst tal.

Returværdi:

Funktionen abs() returnerer den absolutte værdi for det givne tal.

  • Hvis inputtet er et heltal, vil returværdien også være et heltal.
  • Hvis inputtet er en float, vil returværdien også være en float.
  • Hvis input er et komplekst tal, vil returværdien være størrelsen af ​​input.

Eksempler

Følgende eksempler viser funktionen abs() anvendt på heltal, flydende og komplekse værdier.

Code Eksempel 1: Heltal og flydende tal

For at få den absolutte værdi af et heltal og et flydende tal, tjek denne kode:

# 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))

Output:

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

Eksempel 2: Kompleks tal

For at finde den absolutte værdi af et komplekst tal, brug denne kode:

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

Output:

The magnitude of the complex number is: 10.44030650891055

Sådan finder du den absolutte værdi af en liste i Python

Funktionen abs() arbejder på et enkelt tal, så at sende en hel liste til den genererer en TypeError. For at anvende den på alle elementer i en liste skal du bruge en listeforståelsesfunktion, der kalder abs() på hvert element:

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

Output:

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

Forståelsen bevarer den oprindelige rækkefølge og returnerer en ny liste med positive værdier. Du kan opnå det samme resultat med den indbyggede map()-funktion, for eksempel. list(map(abs, numbers)), som anvender abs() på hvert element uden at skrive et eksplicit loop.

  • Brug en listeforståelse, når du også vil filtrere eller transformere værdierne.
  • Brug map() til et kort, læsbart kald, der anvender abs() direkte.
  • For store numeriske datasæt er et NumPy-array med np.abs() hurtigere end et Python loop.

Python abs() vs. math.fabs()

Python tilbyder to måder at få en absolut værdi på: den indbyggede abs()-funktion og matematikmodulets fabs()-funktion. De ligner hinanden, men opfører sig forskelligt:

import math

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

Output:

7
7.0

De vigtigste forskelle mellem de to funktioner er:

  • Returtype: abs() bevarer inputtypen og returnerer et heltal for et heltal, mens math.fabs() altid returnerer en flydende værdi.
  • Importere: abs() er altid tilgængelig, men math.fabs() kræver import math.
  • Komplekse tal: abs() returnerer størrelsen af ​​et komplekst tal, hvorimod math.fabs() genererer en TypeError for kompleks input.

Praktiske anvendelser af Python abs() Funktion

Fordi abs() kasserer fortegnsinformation, er det nyttigt, når kun størrelsen af ​​en værdi betyder noget og ikke dens retning. Et almindeligt eksempel er at finde forskellen mellem to aflæsninger:

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

Output:

Temperature change: 17

Daglig brug af den absolutte værdi inkluderer:

  • Afstande og forskelle: måling af afstanden mellem to punkter, temperaturer eller tidsstempler, uanset hvilken værdi der er størst.
  • Fejlmålinger: beregning af den absolutte fejl mellem en forudsagt værdi og en faktisk værdi.
  • Tolerancekontrol: test af, om et resultat er tæt nok på et mål, som i abs(actual - expected) < 0.01.
  • Finans: rapportering af størrelsen af ​​en gevinst eller et tab uden fortegn.

Ligesom round()-funktionen, abs() er en indbygget modul, som du kan kalde direkte uden at importere noget modul.

Ofte Stillede Spørgsmål

Nej. abs() returnerer en ny værdi og ændrer aldrig dens argument, fordi tal i Python er uforanderlige. For at beholde resultatet, tildel det til en variabel, for eksempel positiv = abs(tal). Den oprindelige variabel har stadig sin fortegnsbestemte værdi.

Nej. Ved at sende en streng får man fejlen TypeError: dårlig operandtype for abs(): 'str', fordi abs() kun accepterer heltal, flydende tal eller komplekse tal. For at måle en streng i stedet skal du bruge len(), som returnerer antallet af tegn, den indeholder.

Du kan beregne det manuelt. For en værdi x returnerer max(x, -x) den absolutte værdi, og (x ** 2) ** 0.5 fungerer også for reelle tal. Den indbyggede abs() er dog tydeligere, hurtigere og håndterer også komplekse tal.

Nej. Den lodrette stregnotation |x| er matematisk, ikke Python syntaks; i Python Symbolet | er den bitvise ELLER-operator. For at få en absolut værdi skal du kalde den indbyggede abs()-funktion, for eksempel abs(-8), som returnerer 8.

__abs__ er den dunder-metode, som abs() kalder bag kulisserne. Når du skriver abs(obj), Python kører obj.__abs__(). Ved at definere __abs__ i din egen klasse kan abs() arbejde på brugerdefinerede objekter, såsom en vektor eller en pengetype.

Brug de vektoriserede versioner i stedet for et loop. NumPy's np.abs(array) returnerer et nyt array med hvert element gjort positivt, og en pandas-serie eksponerer Series.abs(). Begge anvender den absolutte værdi på tværs af alle elementer på én gang, hvilket er hurtigere for store datasæt.

abs() understøtter fejl- og afstandsmålinger. Gennemsnitlig absolut fejl (MAE) og L1-tab summerer de absolutte forskelle mellem forudsigelser og mål, og absolutte værdier måler gradientstørrelser. For hele arrays anvender NumPy np.abs() den samme operation effektivt på tværs af hvert element.

GitHub Copilot foreslår abs()-kald, listeforståelser som [abs(n) for n in nums] og NumPy np.abs()-linjer direkte fra en kort kommentar. Den kan også scaffolde en mean absolute error-funktion, så du kan bekræfte logikken i stedet for at skrive standardtekst.

Opsummer dette indlæg med: