CodeGym /Java Kurs /Python SELF DE /Eingebaute Funktionen

Eingebaute Funktionen

Python SELF DE
Level 13 , Lektion 1
Verfügbar

1.1 Liste beliebter eingebauter Funktionen

Wir haben schon viele eingebaute Funktionen kennengelernt, aber ich möchte noch ein paar erwähnen, die in naher Zukunft nützlich sein könnten:

  • id()
  • hash()
  • dir()

Im Folgenden ein bisschen mehr zu ihnen:

Funktion id()

Die Funktion id() gibt eine eindeutige Objektkennung (eine Zahl) zurück. Diese Kennung ist eine Ganzzahl und bleibt während der Existenz des Objekts eindeutig. Normalerweise entspricht die Kennung der Adresse des Objekts im Speicher, obwohl das in der Python-Spezifikation nicht garantiert wird.

Die eindeutige Kennung eines Objekts kann genutzt werden, um viele Operationen besser zu verstehen, zum Beispiel zu erkennen, wo Objekte dupliziert werden und wo wir Referenzen auf dasselbe Objekt haben. Gleiche Objekte haben unterschiedliche Kennungen, aber Referenzen auf dasselbe Objekt zeigen dieselbe Kennung.

Kann während des Debugging hilfreich sein, um zu verstehen, wie Python Objekte im Speicher verwaltet.


a = [1, 2, 3]
b = a
print(id(a))  # Gibt die Kennung des Objekts 'a' aus
print(id(b))  # Gibt dieselbe Kennung aus, da 'b' auf dasselbe Objekt verweist

Funktion hash()

Die Funktion hash() gibt einen Hash-Wert (eine Zahl) für ein angegebenes Objekt zurück, sofern es hashbar ist. Hashbare Objekte in Python müssen unveränderlich sein und einen konstanten Hash-Wert über ihre Lebensdauer haben.

Beispiele für solche Objekte sind Zahlen, Zeichenketten und Tupel (wenn alle ihre Elemente ebenfalls hashbar sind). Hash-Werte werden in Dictionaries und Sets für schnelle Suchen verwendet. Sie werden zur Optimierung von Such- und Speichervorgängen eingesetzt, wenn schnelle Überprüfungen der Gleichheit und Einzigartigkeit erforderlich sind.


print(hash("hello"))  # Gibt den Hash-Wert der Zeichenkette "hello" zurück
print(hash(42))       # Gibt den Hash-Wert der Zahl 42 zurück
print(hash((1, 2, 3)))  # Gibt den Hash-Wert des Tupels (1, 2, 3) zurück

Wichtig! Hash-Werte unveränderbarer Objekte bleiben während ihrer Lebensdauer konstant. Veränderbare Objekte wie Listen und Dictionaries sind nicht hashbar und können nicht als Schlüssel in Dictionaries oder als Elemente von Sets verwendet werden.

Funktion dir()

Die Funktion dir() gibt eine Liste von Attributen und Methoden eines Objekts zurück. Wenn kein Objekt angegeben ist, gibt dir() die Namen in der aktuellen lokalen Namespace zurück. Diese Funktion ist nützlich, um die Struktur von Objekten und ihre Attribute zu erkunden.

Verwendet, um eine Liste aller Attribute und Methoden eines Objekts zu erhalten, was das Verständnis seiner Struktur und der verfügbaren Funktionen erleichtert. Häufig genutzt für Debugging und die Analyse von Objekten, besonders wenn die Dokumentation eingeschränkt oder nicht verfügbar ist.


class MyClass:
    def __init__(self):
        self.name = "Alice"
            
    def greet(self):
        print("Hello, " + self.name)
        
obj = MyClass()
print(dir(obj))  # Gibt die Liste der Attribute und Methoden des Objekts 'obj' aus
print(dir())     # Gibt die Liste der Namen im aktuellen lokalen Namespace aus

1.2 Arbeit mit Kollektionen

Es gibt noch ein paar nützliche Funktionen für die Arbeit mit Kollektionen. Vielleicht wurden sie in früheren Vorlesungen erwähnt, aber jetzt möchte ich etwas genauer darauf eingehen.

  • zip()
  • min()
  • max()
  • sum()
  • count()

Funktion zip()

Die Funktion zip() kombiniert mehrere iterierbare Objekte (wie Listen, Tupel, Strings) und gibt einen Iterator von Tupeln zurück. Jedes Tupel enthält Elemente, die von denselben Indexpunkten aller iterierbaren Objekte gesammelt wurden.

Häufig verwendet, um Daten aus mehreren iterierbaren Objekten zu kombinieren und zu ermöglichen, dass sie einfach gleichzeitig durchlaufen werden. Auch nützlich zur Erstellung von Dictionaries aus zwei Listen — eine für Schlüssel, die andere für Werte.


names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
combined = zip(names, ages)
print(list(combined))  # Ausgabe: [('Alice', 25), ('Bob', 30), ('Charlie', 35)]

Funktion max()

Die Funktion max() gibt das größte Element des angegebenen iterierbaren Objekts oder aus mehreren angegebenen Argumenten zurück. Es kann auch eine Schlüssel-Funktion angegeben werden, um die Vergleichsregel zu definieren.


numbers = [1, 2, 3, 4, 5]
print(max(numbers))  # Ausgabe: 5
            
# Mit Schlüssel-Funktion
words = ["apple", "banana", "cherry"]
print(max(words, key=len))  # Ausgabe: 'banana'

Funktion min()

Die Funktion min() gibt das kleinste Element des angegebenen iterierbaren Objekts oder aus mehreren angegebenen Argumenten zurück. Es kann auch eine Schlüssel-Funktion angegeben werden, um die Vergleichsregel zu definieren.


numbers = [1, 2, 3, 4, 5]
print(min(numbers))  # Ausgabe: 1
        
# Mit Schlüssel-Funktion
words = ["apple", "banana", "cherry"]
print(min(words, key=len))  # Ausgabe: 'apple'

Funktion count()

Die Funktion count() wird verwendet, um die Anzahl der Vorkommen eines Elements in einem iterierbaren Objekt wie einer Liste oder einem String zu zählen. Wird auf einer Liste, einer Kollektion oder einem Iterator aufgerufen.


numbers = [1, 2, 2, 3, 4, 2, 5]
print(numbers.count(2))  # Ausgabe: 3
    
text = "hello world"
print(text.count("o"))  # Ausgabe: 2

Funktion sum()

Die Funktion sum() gibt die Summe aller Elemente eines iterierbaren Objekts zurück. Optional kann ein Startwert angegeben werden, der zur Summe hinzugefügt wird.


numbers = [1, 2, 3, 4, 5]
print(sum(numbers))  # Ausgabe: 15
    
# Mit Startwert
print(sum(numbers, 10))  # Ausgabe: 25
    

1.3 Code-Ausführung

Und noch zwei Funktionen, die dir als Anfänger nützlich sein können:

  • eval()
  • exec()

Sie bieten leistungsstarke Funktionen, erfordern jedoch vorsichtige Verwendung aufgrund potenzieller Sicherheitsrisiken. Hier sind die Details zu jeder dieser Funktionen:

Funktion eval()

Die Funktion eval(expression) nimmt einen String entgegen und führt ihn als Python-Ausdruck aus. Sie gibt das Ergebnis der Ausführung dieses Ausdrucks zurück. Wird verwendet, um String-Ausdrücke als Python-Code zu evaluieren.

Beispiele:


x = 10
result = eval("x + 5")
print(result)  # Ausgabe: 15

Funktion exec()

Die Funktion exec() nimmt einen String entgegen und führt ihn als Python-Code aus. Im Gegensatz zu eval(), das nur Ausdrücke ausführt, kann exec() beliebige Python-Anweisungen ausführen, einschließlich Funktionsdefinitionen, Schleifen und Modulimporten. Diese Funktion gibt keinen Wert zurück.

Wird verwendet, um dynamische Skripte auszuführen und neue Funktionen oder Klassen während der Programmausführung zu definieren.


code = """
def greet(name):
    print(f"Hello, {name}!")
        
greet("Alice")
"""
exec(code)
# Ausgabe: Hello, Alice!

Wichtig! Wie auch eval() kann exec() gefährlich sein, wenn es mit unzuverlässigen Eingabedaten verwendet wird. Sei vorsichtig und vermeide die Verwendung von exec() zur Ausführung von Code in Produktionsumgebungen.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION