Python débutant Zundokokiyoshi

Quand j'ai goûté Python récemment, j'avais une bonne tâche appelée Zundokokiyoshi, alors je l'ai faite. Est-ce uniquement Python avec un générateur?

zundoko.py



import random

def zundoko_gen():
    while True:
        yield random.choice(('Bouse', 'Doco', 'Huh'))

class ZunDokoChecker:
    def __init__(self):
        self.zun_count = 0
        
    def check(self, word):
        if word == 'Doco':
            result = self.zun_count >= 4
            self.zun_count = 0
        else:
            self.zun_count = self.zun_count + 1 if word == 'Bouse' else 0
            result = False
        return result

checker = ZunDokoChecker()

for word in zundoko_gen():
    print(word)
    if checker.check(word):
        print('Ki yo shi!')
        break

J'ai eu un thème de shiracamus, donc je l'ai fait immédiatement.

zundoko2.py


import random

def zundoko_gen():
    zun_count = 0
    word_list = ('Bouse', 'Doco', 'Huh')
    
    while True:
        word = random.choice(word_list)
        yield word
        
        if word == 'Bouse':
            zun_count += 1
        else:
            if word == 'Doco' and  zun_count >= 4:
                return
            zun_count = 0

            

for word in zundoko_gen():
    print(word);
    
print('Ki yo shi!')

J'ai essayé de le concevoir, mais quand j'ai détecté l'achèvement de Zundoko, j'ai dû notifier la fin de la génération avec le prochain retour de valeur, mais au début je l'ai fait avec un drapeau.

Depuis que j'utilise yield, j'ai renvoyé la valeur pour le moment, puis j'ai décidé de la mettre fin, j'ai donc pu actualiser sans indicateur.

C'est un passe-temps pour sortir word_list de la boucle la plus profonde. Puisqu'il s'agit d'une boutique intégrée, je souhaitais à chaque fois générer une instance de liste avec la commande BUILD_LIST.

Recommended Posts

Python débutant Zundokokiyoshi
Débutant ABC154 (Python)
mémo débutant python (9.2-10)
mémo débutant python (9.1)
Notes de débutant Python
[Débutant] Tableau Python
Débutant ABC155 (Python)
[Débutant] Fonctions Python
Débutant ABC157 (Python)
Zundokokiyoshi avec python
PyQ ~ Python Débutant ~
Mémo débutant Python (2)
Zundokokiyoshi (générateur) en Python
Un débutant en Python lance Discord Bot
Zundokokiyoshi avec python / rubis / Lua
Web scraping débutant avec python
Concours Atcoder Débutant 152 Kiroku (python)
[Python débutant] Divisez une liste (5 lignes).
[Débutant] Extraire des chaînes de caractères avec Python
Le débutant en Python a essayé 100 traitements de langage Knock 2015 (05 ~ 09)
AtCoder Beginner Contest 174 C Problème (Python)
Le débutant en Python a essayé 100 traitements de langage Knock 2015 (00 ~ 04)
python kafka
Les bases de Python ⑤
Une note où un débutant Python s'est retrouvé coincé
Résumé Python
Notation d'inclusion Python
Technique Python
Étudier Python
Mémorandum Python
Python FlowFishMaster
Service Python
astuces python
fonction python ①
Les bases de Python
Mémo Python
Kmeans débutants
ufo-> python (3)
Notation d'inclusion Python
Installer python
Python Singleton
Les bases de Python ④
Mémorandum Python 2
mémo python
[Débutant] Scrapage Web Python facile à comprendre à l'aide de Google Colaboratory
Python Jinja2
Incrément Python
atCoder 173 Python
[Python] fonction
Installation de Python
Installer Python 3.4.3.
Essayez Python
Mémo Python
Itératif Python
Algorithme Python
Python2 + mot2vec
[Python débutant] Joindre deux listes en alternance (5 lignes).
Mémo Atcoder débutant Python @ Keyence 2020, problème ABC
[Python] Variables