Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Entwicklung Zuletzt aktualisiert: September 23, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

In diesem Lernprogramm werden Sie Python-Programme schreiben, um häufig gestellte Fragen zu String-Operationen zu lösen.

Sie lernen, wie Sie prüfen können, ob Python-Strings Palindrome oder Anagramme sind und ob sie in der Groß-/Kleinschreibung vorliegen.

Python Zeichenketten: Ein kurzer Überblick

In Python sind Strings leistungsfähige integrierte Datentypen. Sie können eine Folge von Zeichen speichern.

Indizierung in Python Strings: Wie alle Python Iterables sind auch Strings mit einem Null-Index versehen. Die gültigen Indizes für eine Zeichenkette der Länge N sind also 0, 1, 2 bis zu N - 1.

python-strings

Python unterstützt auch die negative Indizierung, um auf Elemente am Ende der Zeichenkette zuzugreifen. So ist -1 der Index des letzten Zeichens in der Zeichenkette, -2 der Index des vorletzten Zeichens in der Zeichenkette und so weiter.

Unveränderlichkeit von Python-Strings: Darüber hinaus sind Strings in Python unveränderlich, d.h. Sie können Sie nicht an Ort und Stelle ändern. Sie können jedoch mehrere String-Methoden auf sie anwenden und erhalten so Kopien von Strings mit dem gewünschten Ergebnis.

Nachdem wir nun die Grundlagen von Python-Strings kennengelernt haben, wollen wir nun einige einfache, aber interessante Probleme lösen.

Fangen wir an.

Prüfen Sie, ob ein Python-String ein Palindrom ist

Problem: Prüfen Sie anhand einer Python-Zeichenkette, ob sie ein Palindrom ist oder nicht.

Wenn ja, geben Sie True zurück, sonst False.

Unser erstes Problem besteht auch darin, zu prüfen, ob eine gegebene Zeichenkette ein Palindrom ist oder nicht.

Ein Palindrom ist eine Zeichenkette, die sowohl von links nach rechts als auch von rechts nach links gleich gelesen wird. Lassen Sie uns ein paar Beispiele aufzählen: racecar, refer, level, madam, radar, und so weiter.

python-string-palindrome

Hier sind die Schritte, um dieses Problem zu lösen:

  • Besorgen Sie sich eine umgekehrte Kopie der Zeichenkette und speichern Sie sie in einer anderen Variablen, falls erforderlich.
  • Vergleichen Sie die Werte der ursprünglichen Zeichenfolge und der umgekehrten Zeichenfolge.
  • Wenn sie gleich sind, ist die Zeichenkette ein Palindrom. Geben Sie auch True zurück und hören Sie auf.
  • Wenn die ursprüngliche und die umgekehrte Kopie nicht gleich sind, ist die Zeichenfolge kein Palindrom. Wir sollten auch False zurückgeben.

Die wichtigste Aufgabe besteht darin, eine umgekehrte Kopie der Zeichenkette zu erhalten. In Python gibt es einige verschiedene Möglichkeiten, dies zu tun.

Wir werden uns jedoch mit zwei Ansätzen beschäftigen:

  • String-Slicing verwenden
  • Verwendung der Funktion reversed() und der Methode join()

Umkehrung eines Python-Strings durch Slicing

Die Syntax <any_str>[start: stop: step] gibt ein Slice der Zeichenkette <any_str> von start bis einschließlich stop mit der Schrittgröße step zurück.

  • Wenn Sie start weglassen, beginnt der Ausschnitt am Anfang der Zeichenkette.
  • Wenn Sie den Index stop nicht angeben, erstreckt sich der Ausschnitt bis zum Ende der Zeichenkette.
  • Und negative Werte von step können verwendet werden, um Slices ab dem Ende der Zeichenkette zurückzugeben.

<any_str>[::-1] gibt auch eine umgekehrte Kopie der Zeichenkette zurück.

Die folgende Codezelle enthält die Definition der Funktion is_palindrome().

Sie nimmt eine Zeichenkette als Argument entgegen und gibt True oder False zurück, je nachdem, ob es sich um ein Palindrom handelt oder nicht.

Hier haben wir String Slicing verwendet, um eine umgekehrte Kopie des Strings zu erhalten.

def is_palindrome(this_str):
 rev_str = this_str[::-1]
 if (this_str == rev_str):
 return True
 else:
 return False

▶️ Nun, da wir die Funktion definiert haben, können wir sie mit einer beliebigen gültigen Zeichenkette als Argument aufrufen.

is_palindrome("rennwagen")
True

In der obigen Codezelle ist racecar ein Palindrom. Die Funktion is_palindrome() gibt auch wie erwartet True zurück.

Versuchen Sie nun, die Funktion mit einer beliebigen Zeichenkette aufzurufen, die kein Palindrom ist, wie z.B. river.

is_palindrome("Fluss")
False

Und wie Sie sehen können, gibt es die Funktion False zurück, was korrekt ist. ✅

Wie man einen Python-String mit reversed() und join() umkehrt

In Python können Sie die Methode join() zusammen mit der Funktion reversed() verwenden, um eine Zeichenkette umzukehren.

  • Die Funktion reversed() gibt einen umgekehrten Iterator durch die Zeichen der Zeichenkette zurück.
  • Die join() -Methode kann dann verwendet werden, um diese Zeichen in umgekehrter Reihenfolge zu verbinden.

Mithilfe der obigen Methode können Sie die Funktion is_palindrome() wie in der folgenden Codezelle umschreiben.

def is_palindrome(this_str):
 rev_str = ''.join(reversed(this_str))
 if (this_str == rev_str):
 return True
 else:
 return False

Sie können auch die Funktion is_palindrome() innerhalb der Listenverarbeitung verwenden, um alle Palindrome aus einer längeren Liste von Zeichenketten zu sammeln.

str_list = ["refer", "blue", "level", "12321", "dragon"]

palindromes = [string for string in str_list if is_palindrome(string)]
print(palindromes)
# Ausgabe
['refer', 'level', '12321']

So funktioniert der obige Code:

  • Durchlaufen Sie str_list, rufen Sie is_palindrome() für jeden String auf.
  • Wenn is_palindrome() den Wert True liefert, fügen Sie die Zeichenkette zur Liste der Palindrome hinzu.

Wie Sie in der obigen Ausgabe sehen können, ist palindromes eine Liste aller palindromischen Zeichenketten in str_list.

Prüfen Sie, ob zwei Python-Zeichenfolgen Anagramme sind

Eine weitere beliebte Frage, die Ihnen in Vorstellungsgesprächen begegnen kann, ist die, ob ein Paar von Zeichenketten str1 und str2 Anagramme sind oder nicht.

Zwei Zeichenketten gelten als Anagramme, wenn die Anzahl der Zeichen in den beiden Zeichenketten genau gleich ist. Das bedeutet, dass Sie eine der Zeichenketten durch Vertauschen oder Umordnen der Zeichen in der anderen Zeichenkette erhalten können.

Beispiele für Anagramme sind state-taste, save-vase, elbow-below, und so weiter.

python-strings-anagrams

Wie man mit dem Counter-Objekt in Python auf Anagramme prüft

Eine einfache und intuitive Methode besteht darin, die Anzahl der Vorkommen jedes Zeichens in den beiden Zeichenketten zu berechnen. Und dann zu prüfen, ob die Anzahlen gleich sind.

Das geht ganz einfach mit dem Counter-Objekt aus dem Modul itertools. Das Counter-Objekt gibt ein Python-Wörterbuch zurück: mit den Zeichen als Schlüsseln und den entsprechenden Zählungen als Werte.

Betrachten Sie die Zeichenketten "save" und "vase" wie unten gezeigt.

str1 = "speichern"
str2 = "vase"

Hier sind c1 und c2 Counter-Objekte, die die Anzahl der Zeichen der Strings str1 bzw. str2 enthalten.

from collections import Counter
c1 = Counter(str1)
c2 = Counter(str2)
print(c1)
print(c2)
c1 == c2

# Ausgabe
Counter({'s': 1, 'a': 1, 'v': 1, 'e': 1})
Counter({'v': 1, 'a': 1, 's': 1, 'e': 1})
True

c1 == c2 Es gibt True zurück, da str1 und str2 Anagramme sind.

Mit dieser Logik können wir nun die Funktion are_anagrams() mit zwei Parametern word1 und word2 definieren. Im Hauptteil der Funktion prüfen wir, ob Zähler(wort1) == Zähler(wort2).

def are_anagrams(wort1, wort2):
 if Zähler(wort1) == Zähler(wort2):
 return True
 else:
 return False

▶️ Um dies zu überprüfen, rufen Sie are_anagrams() mit str1, str2 als Argumente auf. Da str1 und str2 Anagramme sind ("save" und "vase"), gibt die Funktion True zurück, was korrekt ist.

are_anagrams(str1, str2)
True

Überprüfung auf Anagramme mit sortierten Kopien von Zeichenketten

Es gibt noch eine andere Möglichkeit, wie Sie dies tun können.

Wenn zwei Zeichenketten Anagramme sind, dann sind ihre sortierte Kopien gleich.

Wir können auch die Funktion are_anagrams() so umschreiben, dass sie prüft, ob die sortierte Version von str1 mit der sortierten Kopie von str2 identisch ist. Wenn sie gleich sind, dann sind die beiden Zeichenketten Anagramme; andernfalls sind sie es nicht.

Mit der obigen Methode zur Überprüfung der Gleichheit von sortierten Kopien können wir die Funktion are_anagrams() wie folgt umschreiben.

def are_anagrams(word1, word2):
 if sortiert(word1) == sortiert(word2):
 return True
 else:
 return False

Lassen Sie uns nun ein paar Funktionsaufrufe machen.

  • Die Zeichenketten "elbow" und "below" sind Anagramme und die Funktion are_anagrams() Es gibt True zurück.
  • Und "state" und "tasted" sind keine Anagramme, und die Funktion gibt False zurück.
are_anagrams("unten", "elbow")
True

are_anagrams("state", "tasted")
False

Prüfen Sie, ob ein Python-String in Title Case ist

Hier ist unsere letzte Frage für dieses Tutorial.

Problem: Gegeben ist eine Zeichenkette: der Name einer Person - mit Vor- und Nachnamen.

Sie müssen prüfen, ob der erste Buchstabe sowohl des Vor- als auch des Nachnamens großgeschrieben wird.

Diese Art der Großschreibung, bei der der erste Buchstabe eines jeden Wortes groß geschrieben wird, nennt man Titelfall.

Sie müssen auch überprüfen, ob der Name in Großbuchstaben geschrieben ist:

1. Wenn ja, geben Sie eine Meldung aus, dass die Formatierung in Groß- und Kleinschreibung erfolgt.

2. Andernfalls geben Sie eine Kopie der Zeichenkette zurück, die in der Groß-/Kleinschreibung formatiert ist.

python-string-title-case
  • Python verfügt über eine eingebaute String-Methode istitle(), die prüft, ob eine Zeichenkette in der Groß-/Kleinschreibung formatiert ist.

<str>.istitle() Es gibt True zurück, wenn die Zeichenkette <str> in der Groß-/Kleinschreibung formatiert ist, andernfalls False.

  • Und Pythons String-Methode title() gibt eine Kopie des Strings zurück, der in der Groß-/Kleinschreibung formatiert ist.

Jetzt können Sie auch diese beiden Methoden verwenden, um das Problem zu lösen.

Definieren Sie eine Funktion check_titlecase(), sterben name als Argument akzeptiert.

  • Sie können die Methode istitle() auf der Eingabezeichenkette aufrufen, um zu prüfen, ob sie in der Groß-/Kleinschreibung formatiert ist.
  • Wenn True, können Sie ausgeben, dass die Zeichenkette bereits in title case formatiert ist.
  • Andernfalls können Sie die Methode title() aufrufen und eine Kopie der Zeichenkette in der Groß-/Kleinschreibung zurückgeben.

Die folgende Codezelle zeigt die Definition der Funktion check_titlecase().

def check_titlecase(name):
 if name.istitle():
 print(f"'{Name}' ist bereits in Großbuchstaben formatiert.")
 else:
 return name.title()

Lassen Sie uns nun die Methode check_titlecase() mit einem Argument aufrufen.

check_titlecase("jane smith")

# Ausgabe
Jane Smith

In der obigen Ausgabe können Sie sehen, dass die Zeichenkette "Jane Smith" nun in der Groß- und Kleinschreibung des Titels vorliegt.

▶️ Lassen Sie uns ein anderes Beispiel nehmen.

check_titlecase("agatha Christie")

# Ausgabe
Agatha Christie

Diesmal rufen wir die Funktion mit einer Zeichenkette in Titelform auf.

check_titlecase("Grace Hopper")

# Ausgabe
'Grace Hopper' ist bereits in Großbuchstaben formatiert.

Wir werden benachrichtigt, dass die Zeichenkette in der Groß- und Kleinschreibung des Titels formatiert ist, und die Funktion funktioniert wie erwartet.

Schlussfolgerung 👩‍🏫

Fassen wir nun die Probleme zusammen, die wir bisher besprochen haben.

  • Um zu prüfen, ob eine Zeichenkette ein Palindrom ist, prüfen Sie, ob die Zeichenkette und ihre umgekehrte Version gleich sind. Sie können String Slicing oder integrierte Methoden verwenden, um Strings umzukehren.
  • Um zu prüfen, ob zwei Zeichenketten Anagramme sind, prüfen Sie, ob ihre sortierten Kopien gleich sind. Und um eine Zeichenkette zu sortieren, verwenden Sie die eingebaute Funktion sortiert().
  • Um zu überprüfen, ob ein Name in Großbuchstaben geschrieben ist, verwenden Sie die Methode .istitle() zur Überprüfung und die Methode .title(), um eine Kopie der Zeichenkette in Großbuchstaben zu erhalten.

Ich hoffe, dass Ihnen dieser Lehrgang über Python-Strings gefallen hat. In einem nächsten Schritt lernen Sie, wie Sie Listenkomplexe in Python verwenden können oder lernen Sie den Operator nicht gleich in Python kennen.

Viel Spaß beim Lernen und Programmieren!🎉.

  • Bala Priya C
    Autor
Dank an unsere Sponsoren
Weitere gute Lektüre zum Thema Entwicklung
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder