[Python] Wann, wo, wer und welches Spiel mit regulären Ausdrücken

Zweck

・ Da ich reguläre Ausdrücke gelernt habe, werde ich sie vorerst gerne verwenden.

Umgebung

Verfahren

Ich habe sie alle in einer Datei geschrieben (Practice.py).

(1) Importieren Sie das Modul re, eine Standardbibliothek für reguläre Ausdrücke

practice.py


import re

② Bereiten Sie eine Frage vor

practice.py


question = "Wann? wo? Wer? Was hast du getan?"

③ Definieren Sie die Funktion four_ws_game

practice.py


def four_ws_game(sentence):
    words = re.findall(".*??", sentence)
    i = 0
    while i < len(words):
        answer = input(f"{words[i]}:").strip()
        if answer == "":
            print("Bitte mach es ernst")
        else:
            sentence = sentence.replace(words[i], answer)
            i += 1
    print(sentence)

Es ist schwer zu verstehen, also zerlegen wir es.

3-1. Verwenden Sie die Findall-Funktion des Re-Moduls

practice.py


words = re.findall(".*??", sentence)

Mit anderen Worten, dieses Programm steht am Ende des Satzes (Verurteilung) **? Wörter mit einer beliebigen Anzahl von Zeichen mit (Frage in voller Breite) ** Suchen und Auflisten.

Ja

practice.py


words = re.findall(".*??", sentence)
print(words)

Ausführungsergebnis


['Wann?', 'wo?', 'Wer?', 'Was hast du getan?']
Nichts

practice.py


words = re.findall(".*?", sentence)
print(words)

Ausführungsergebnis


['Wann? wo? Wer? Was hast du getan?']

3-2. Schreiben Sie den Inhalt des Satzes auf den Eingabewert und drucken Sie ihn aus

practice.py


i = 0
while i < len(words):
    answer = input(f"{words[i]}:").strip()
    if answer == "":
        print("Bitte mach es ernst")
    else:
        sentence = sentence.replace(words[i], answer)
        i += 1
print(sentence)

④ Machen Sie den Satz zur ersten Frage, die Sie vorbereitet haben, und führen Sie ihn aus.

practice.py


four_ws_game(question)

Ganzer Code

practice.py


import re

question = "Wann? wo? Wer? Was hast du getan?"

def four_ws_game(sentence):
    words = re.findall(".*??", sentence)
    i = 0
    while i < len(words):
        answer = input(f"{words[i]}:").strip()
        if answer == "":
            print("Bitte mach es ernst")
        else:
            sentence = sentence.replace(words[i], answer)
            i += 1
    print("Was ist passiert? ::" + sentence)

four_ws_game(question)
Wann?:Gestern
wo?:Zuhause
Wer?:Katze
Was hast du getan?:Ich bin eingeschlafen
Was ist passiert? : Die Katze ist gestern bei mir zu Hause gefallen
Wann?:Gestern
wo?:
Bitte mach es ernst
wo?:Zuhause
Wer?:Katze
Was hast du getan?:
Bitte mach es ernst
Was hast du getan?:Wurde ein Hund
Was ist passiert? : Die Katze ist gestern zu Hause ein Hund geworden

Recommended Posts

[Python] Wann, wo, wer und welches Spiel mit regulären Ausdrücken
Über Python und reguläre Ausdrücke
Bei Verwendung regulärer Ausdrücke in Python
Ein Memo, das doppelte Anführungszeichen in voller Breite mit regulären Python-Ausdrücken verarbeitet
Reguläre Ausdrücke, die in Python leicht und solide zu erlernen sind
Pythons regulärer Ausdruck, str und unicode sind nüchtern
Überlappende reguläre Ausdrücke in Python und Java
[Python] Reguläre Ausdrücke Reguläre Ausdrücke
Holen Sie sich die passende Zeichenfolge in den regulären Ausdruck und verwenden Sie sie beim Ersetzen unter Python3 erneut
Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
Vorsichtsmaßnahmen, die beim Aufbau einer PYTHON-Umgebung beachtet werden müssen
Code und Lehren für Funktionen, die spezielle Windows-Ordner in Python3-ctypes öffnen
[Python] Eine Funktion, die die gesamte Zeichenfolge mit einem regulären Ausdruck durchsucht und alle übereinstimmenden Zeichenfolgen abruft.
Wenn Sie mehrere Zeichen in einer Zeichenfolge ersetzen möchten, ohne reguläre Ausdrücke in der Python3-Serie zu verwenden
[Python] Python und Sicherheit - is Was ist Python?
Erstellen Sie mit Python und Redis eine Rangliste für Spiele in der Alibaba-Cloud
Beim Erstellen einer Umgebung, die Python Django unter Ubuntu 12.04 LTS verwendet
Eine Kurzanleitung zu PyFlink, die Apache Flink und Python kombiniert
Ein Python-Skript, das auf dem Mac erstellte ._DS_Store- und ._ * -Dateien löscht
[Python] Ich habe eine Funktion erstellt, die auch reguläre Ausdrücke verwenden kann, die Zeichenfolgen auf einmal ersetzen.