[Python] Quand, où, qui et quel jeu en utilisant des expressions régulières

Objectif

・ Depuis que j'ai appris les expressions régulières, j'apprécierai de les utiliser pour le moment.

environnement

procédure

Je les ai tous écrits dans un seul fichier (practice.py).

(1) Importez le module re, qui est une bibliothèque standard pour les expressions régulières

practice.py


import re

② Préparez une question

practice.py


question = "Quand? où? qui? Qu'est-ce que tu as fait?"

③ Définissez la fonction 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("Veuillez le faire sérieusement")
        else:
            sentence = sentence.replace(words[i], answer)
            i += 1
    print(sentence)

C'est difficile à comprendre, alors démontons-le.

3-1. Utilisez la fonction findall du module re

practice.py


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

En d'autres termes, ce programme est à la fin de la phrase (sentense) **? Mots avec n'importe quel nombre de caractères avec (question pleine largeur) ** Rechercher et lister.

Oui

practice.py


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

Résultat d'exécution


['Quand?', 'où?', 'qui?', 'Qu'est-ce que tu as fait?']
Rien

practice.py


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

Résultat d'exécution


['Quand? où? qui? Qu'est-ce que tu as fait?']

3-2. Réécrire le contenu de la phrase (phrase) à la valeur d'entrée et imprimer

practice.py


i = 0
while i < len(words):
    answer = input(f"{words[i]}:").strip()
    if answer == "":
        print("Veuillez le faire sérieusement")
    else:
        sentence = sentence.replace(words[i], answer)
        i += 1
print(sentence)

④ Faites de la phrase la première question que vous avez préparée et exécutez-la.

practice.py


four_ws_game(question)

Code entier

practice.py


import re

question = "Quand? où? qui? Qu'est-ce que tu as fait?"

def four_ws_game(sentence):
    words = re.findall(".*??", sentence)
    i = 0
    while i < len(words):
        answer = input(f"{words[i]}:").strip()
        if answer == "":
            print("Veuillez le faire sérieusement")
        else:
            sentence = sentence.replace(words[i], answer)
            i += 1
    print("Qu'est-il arrivé? :" + sentence)

four_ws_game(question)
Quand?:Hier
où?:À la maison
qui?:Chat
Qu'est-ce que tu as fait?:Je me suis endormi
Qu'est-il arrivé? : Le chat est tombé chez moi hier

--Je me fâche quand j'essaye de le laisser vide

Quand?:Hier
où?:
Veuillez le faire sérieusement
où?:À la maison
qui?:Chat
Qu'est-ce que tu as fait?:
Veuillez le faire sérieusement
Qu'est-ce que tu as fait?:Est devenu un chien
Qu'est-il arrivé? : Le chat est devenu un chien à la maison hier

Recommended Posts

[Python] Quand, où, qui et quel jeu en utilisant des expressions régulières
À propos de Python et des expressions régulières
Lors de l'utilisation d'expressions régulières en Python
Un mémo qui gère les guillemets doubles pleine largeur avec les expressions régulières Python
Expressions régulières faciles et solides à apprendre en Python
l'expression régulière de python, str et unicode sont sobres et addictives
Chevauchement d'expressions régulières en Python et Java
[Python] Expressions régulières Expressions régulières
Récupérez la chaîne correspondante dans l'expression régulière et réutilisez-la lors du remplacement sur Python3
Débarrassez-vous des données sales avec Python et les expressions régulières
Précautions à prendre lors de la construction d'un environnement PYTHON
Code et leçons apprises pour les fonctions qui ouvrent des dossiers Windows spéciaux dans les ctypes Python3
[Python] Une fonction qui recherche la chaîne de caractères entière avec une expression régulière et obtient toutes les chaînes de caractères correspondantes.
Lorsque vous souhaitez remplacer plusieurs caractères dans une chaîne de caractères sans utiliser d'expressions régulières dans la série python3
[Python] Python et sécurité-① Qu'est-ce que Python?
Créez un classement de jeu sur le cloud Alibaba en utilisant Python et Redis
Lors de la création d'un environnement qui utilise python django sur Ubuntu 12.04 LTS
Un guide rapide de PyFlink qui combine Apache Flink et Python
Un script python qui supprime les fichiers ._DS_Store et ._ * créés sur Mac
[Python] J'ai créé une fonction qui peut également utiliser des expressions régulières qui remplacent toutes les chaînes de caractères à la fois.