Python abs() Συνάρτηση: Παραδείγματα απόλυτης τιμής

⚡ Έξυπνη Σύνοψη

Python Η abs() είναι μια ενσωματωμένη συνάρτηση που επιστρέφει την απόλυτη τιμή ενός αριθμού, δηλαδή την απόστασή του από το μηδέν χωρίς πρόσημο. Δέχεται ακέραιους αριθμούς, αριθμούς κινητής υποδιαστολής και μιγαδικούς αριθμούς, επιστρέφοντας το μέγεθος για μιγαδικές εισόδους.

  • 🔢 Απόλυτη τιμή: Η συνάρτηση abs() αφαιρεί το πρόσημο ενός αριθμού και επιστρέφει την απόστασή του από το μηδέν, επομένως η συνάρτηση abs(-25) και abs(25) δίνουν και οι δύο 25.
  • 🧮 Τύποι αριθμών: Το μοναδικό όρισμα μπορεί να είναι ένας ακέραιος αριθμός, ένας αριθμός κινητής υποδιαστολής ή ένας μιγαδικός αριθμός και ο τύπος επιστροφής ταιριάζει με την είσοδο.
  • 🔟 Σύνθετο μέγεθος: Για έναν μιγαδικό αριθμό όπως ο (3+10j), η συνάρτηση abs() επιστρέφει το μέγεθός του, την τετραγωνική ρίζα του τετραγώνου του πραγματικού και φανταστικού μέρους.
  • 📋 Κονίστρα: Η συνάρτηση abs() χειρίζεται έναν αριθμό κάθε φορά, επομένως μια κατανόηση όπως [abs(n) για n σε αριθμούς] την εφαρμόζει σε κάθε στοιχείο.
  • abs() έναντι math.fabs(): Η ενσωματωμένη συνάρτηση abs() διατηρεί τον τύπο εισόδου και υποστηρίζει μιγαδικούς αριθμούς, ενώ η συνάρτηση math.fabs() επιστρέφει πάντα έναν αριθμό float και χρειάζεται τη μαθηματική ενότητα.
  • 🤖 Βοήθεια AI: Τα εργαλεία τεχνητής νοημοσύνης, όπως το GitHub Copilot, δημιουργούν κλήσεις abs() και NumPy np.abs() για εργασίες όπως το μέσο απόλυτο σφάλμα από μια σύντομη προτροπή.

Python Λειτουργία abs().

Python κοιλιακοί ()

Python κοιλιακοί () είναι μια ενσωματωμένη συνάρτηση διαθέσιμη με την τυπική βιβλιοθήκη του PythonΕπιστρέφει την απόλυτη τιμή για τον δεδομένο αριθμό. Η απόλυτη τιμή ενός αριθμού είναι η τιμή χωρίς να λαμβάνεται υπόψη το πρόσημό του. Ο αριθμός μπορεί να είναι ακέραιος, αριθμός κινητής υποδιαστολής ή μιγαδικός αριθμός. Εάν ο δεδομένος αριθμός είναι μιγαδικός, τότε θα επιστρέψει το μέγεθός του.

Σύνταξη

Η σύνταξη της συνάρτησης abs() φαίνεται παρακάτω:

abs(value)

Παράμετροι (τιμή)

Η τιμή εισόδου που θα δοθεί στην abs() για να ληφθεί η απόλυτη τιμή. Μπορεί να είναι ένας ακέραιος, ένας float ή ένας μιγαδικός αριθμός.

Τιμή επιστροφής:

Η συνάρτηση abs() επιστρέφει την απόλυτη τιμή για τον δεδομένο αριθμό.

  • Εάν η τιμή εισόδου είναι ακέραιος αριθμός, η τιμή επιστροφής θα είναι επίσης ακέραια.
  • Εάν η είσοδος είναι ένας αριθμός κινητής υποδιαστολής, η τιμή που επιστρέφεται θα είναι επίσης ένας αριθμός κινητής υποδιαστολής.
  • Εάν η είσοδος είναι μιγαδικός αριθμός, η τιμή επιστροφής θα είναι το μέγεθος της εισόδου.

Παραδείγματα

Τα ακόλουθα παραδείγματα δείχνουν την εφαρμογή της συνάρτησης abs() σε ακέραιες, float και μιγαδικές τιμές.

Code Παράδειγμα 1: Ακέραιος και κινητός αριθμός

Για να λάβετε την απόλυτη τιμή ενός ακέραιου και ενός αριθμού με κινητή βάση, ελέγξτε αυτόν τον κώδικα:

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

Παραγωγή:

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

Παράδειγμα 2: Μιγαδικός αριθμός

Για να λάβετε την απόλυτη τιμή ενός μιγαδικού αριθμού, χρησιμοποιήστε αυτόν τον κώδικα:

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

Παραγωγή:

The magnitude of the complex number is: 10.44030650891055

Πώς να βρείτε την απόλυτη τιμή μιας λίστας σε Python

Η συνάρτηση abs() λειτουργεί σε έναν μόνο αριθμό, επομένως η μεταβίβαση μιας ολόκληρης λίστας σε αυτήν προκαλεί ένα σφάλμα τύπου (TypeError). Για να την εφαρμόσετε σε κάθε στοιχείο μιας λίστας, χρησιμοποιήστε μια κατανόηση λίστας που καλεί abs() σε κάθε στοιχείο:

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

Παραγωγή:

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

Η κατανόηση διατηρεί την αρχική σειρά και επιστρέφει μια νέα λίστα θετικών τιμών. Μπορείτε να επιτύχετε το ίδιο αποτέλεσμα με την ενσωματωμένη συνάρτηση map(), για παράδειγμα list(map(abs, numbers)), η οποία εφαρμόζει abs() σε κάθε στοιχείο χωρίς να γράφει έναν σαφή βρόχο.

  • Χρησιμοποιήστε μια κατανόηση λίστας όταν θέλετε επίσης να φιλτράρετε ή να μετασχηματίσετε τις τιμές.
  • Χρησιμοποιήστε τη συνάρτηση map() για μια σύντομη, ευανάγνωστη κλήση που εφαρμόζει απευθείας τη συνάρτηση abs().
  • Για μεγάλα αριθμητικά σύνολα δεδομένων, ένας πίνακας NumPy με np.abs() είναι ταχύτερος από έναν Python βρόχος.

Python abs() έναντι math.fabs()

Python προσφέρει δύο τρόπους για να λάβετε μια απόλυτη τιμή: την ενσωματωμένη συνάρτηση abs() και τη συνάρτηση fabs() της μαθηματικής ενότητας. Μοιάζουν παρόμοια αλλά συμπεριφέρονται διαφορετικά:

import math

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

Παραγωγή:

7
7.0

Οι βασικές διαφορές μεταξύ των δύο λειτουργιών είναι οι εξής:

  • Τύπος επιστροφής: Η abs() διατηρεί τον τύπο εισόδου και επιστρέφει έναν ακέραιο για έναν ακέραιο, ενώ η math.fabs() επιστρέφει πάντα έναν υποδιαιρέτη.
  • Εισαγωγή: Η abs() είναι πάντα διαθέσιμη, αλλά η math.fabs() απαιτεί import math.
  • Σύνθετοι αριθμοί: Η συνάρτηση abs() επιστρέφει το μέγεθος ενός μιγαδικού αριθμού, ενώ η συνάρτηση math.fabs() δημιουργεί ένα σφάλμα τύπου (TypeError) για μιγαδική είσοδο.

Πρακτικές Εφαρμογές του Python Λειτουργία abs().

Επειδή απορρίπτει πληροφορίες πρόσημου, η συνάρτηση abs() είναι χρήσιμη κάθε φορά που έχει σημασία μόνο το μέγεθος μιας τιμής και όχι η κατεύθυνσή της. Ένα συνηθισμένο παράδειγμα είναι η εύρεση της διαφοράς μεταξύ δύο μετρήσεων:

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

Παραγωγή:

Temperature change: 17

Οι καθημερινές χρήσεις της απόλυτης τιμής περιλαμβάνουν:

  • Αποστάσεις και διαφορές: μετρώντας το κενό μεταξύ δύο σημείων, θερμοκρασιών ή χρονικών σημάτων ανεξάρτητα από το ποια τιμή είναι μεγαλύτερη.
  • Μετρήσεις σφάλματος: υπολογίζοντας το απόλυτο σφάλμα μεταξύ μιας προβλεπόμενης τιμής και μιας πραγματικής τιμής.
  • Έλεγχοι ανοχής: έλεγχος του κατά πόσον ένα αποτέλεσμα είναι αρκετά κοντά σε έναν στόχο, όπως στο abs(actual - expected) < 0.01.
  • Οικονομικών: αναφορά του μεγέθους ενός κέρδους ή ζημίας χωρίς το πρόσημό του.

Όπως το συνάρτηση round(), η abs() είναι μια ενσωματωμένη λειτουργία που μπορείτε να καλέσετε απευθείας χωρίς να εισαγάγετε κάποια ενότητα.

Συχνές Ερωτήσεις

Όχι. Η συνάρτηση abs() επιστρέφει μια νέα τιμή και δεν τροποποιεί ποτέ το όρισμά της, επειδή οι αριθμοί στο Python είναι αμετάβλητες. Για να διατηρήσετε το αποτέλεσμα, αντιστοιχίστε το σε μια μεταβλητή, για παράδειγμα positive = abs(number). Η αρχική μεταβλητή διατηρεί ακόμα την προσημασμένη τιμή της.

Όχι. Η διαβίβαση μιας συμβολοσειράς προκαλεί σφάλμα TypeError: λανθασμένος τύπος τελεστή για abs(): 'str', επειδή η abs() δέχεται μόνο ακέραιους, κινητήριους αριθμούς ή μιγαδικούς αριθμούς. Για να μετρήσετε μια συμβολοσειρά, χρησιμοποιήστε τη συνάρτηση len(), η οποία επιστρέφει πόσους χαρακτήρες περιέχει.

Μπορείτε να το υπολογίσετε χειροκίνητα. Για μια τιμή x, η max(x, -x) επιστρέφει την απόλυτη τιμή και η (x ** 2) ** 0.5 λειτουργεί επίσης για πραγματικούς αριθμούς. Ωστόσο, η ενσωματωμένη abs() είναι πιο σαφής, ταχύτερη και χειρίζεται επίσης μιγαδικούς αριθμούς.

Όχι. Η σημειογραφία με κάθετη ράβδο |x| είναι μαθηματική, όχι Python σύνταξη· σε Python Το σύμβολο | είναι ο τελεστής OR ανά bit. Για να λάβετε μια απόλυτη τιμή, πρέπει να καλέσετε την ενσωματωμένη συνάρτηση abs(), για παράδειγμα abs(-8), η οποία επιστρέφει 8.

Η __abs__ είναι η μέθοδος dunder που καλεί η abs() στο παρασκήνιο. Όταν γράφετε abs(obj), Python Εκτελεί την obj.__abs__(). Ο ορισμός της __abs__ στη δική σας κλάση επιτρέπει στην abs() να δουλέψει σε προσαρμοσμένα αντικείμενα, όπως ένα διάνυσμα ή έναν τύπο χρήματος.

Χρησιμοποιήστε τις διανυσματικοποιημένες εκδόσεις αντί για βρόχο. Η συνάρτηση np.abs(array) του NumPy επιστρέφει έναν νέο πίνακα με κάθε στοιχείο να γίνεται θετικό, και μια συνάρτηση pandas Series εκθέτει τη συνάρτηση Series.abs(). Και οι δύο εφαρμόζουν την απόλυτη τιμή σε όλα τα στοιχεία ταυτόχρονα, κάτι που είναι πιο γρήγορο για μεγάλα σύνολα δεδομένων.

Η συνάρτηση abs() υποστηρίζει τις μετρήσεις σφάλματος και απόστασης. Το μέσο απόλυτο σφάλμα (MAE) και η απώλεια L1 αθροίζουν τις απόλυτες διαφορές μεταξύ προβλέψεων και στόχων, ενώ οι απόλυτες τιμές μετρούν τα μεγέθη της κλίσης. Για ολόκληρους πίνακες, η συνάρτηση NumPy np.abs() εφαρμόζει αποτελεσματικά την ίδια λειτουργία σε κάθε στοιχείο.

Το GitHub Copilot προτείνει κλήσεις abs(), κατανοήσεις λιστών όπως [abs(n) για n σε nums] και γραμμές NumPy np.abs() απευθείας από ένα σύντομο σχόλιο. Μπορεί επίσης να δημιουργήσει μια μέση απόλυτη συνάρτηση σφάλματος, επιτρέποντάς σας να επιβεβαιώσετε τη λογική αντί να γράψετε τυποποιημένα.

Συνοψίστε αυτήν την ανάρτηση με: