Python-Anfänger Zundokokiyoshi

Als ich kürzlich Python probierte, hatte ich eine gute Aufgabe namens Zundokokiyoshi, also habe ich es geschafft. Ist es nur Python-ähnlich mit einem Generator?

zundoko.py



import random

def zundoko_gen():
    while True:
        yield random.choice(('Dung', '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 == 'Dung' else 0
            result = False
        return result

checker = ZunDokoChecker()

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

Ich habe ein Thema von Shiracamus bekommen, also habe ich es sofort gemacht.

zundoko2.py


import random

def zundoko_gen():
    zun_count = 0
    word_list = ('Dung', 'Doco', 'Huh')
    
    while True:
        word = random.choice(word_list)
        yield word
        
        if word == 'Dung':
            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!')

Ich habe versucht, es zu entwickeln, aber als ich die Fertigstellung von Zundoko entdeckte, musste ich das Ende der Generierung bis zur nächsten Wertrückgabe benachrichtigen, aber zuerst tat ich es mit einem Flag.

Da ich Yield verwende, habe ich den Wert vorerst zurückgegeben und mich dann entschlossen, ihn zu beenden, damit ich ohne Flag aktualisieren konnte.

Es ist ein Hobby, word_list aus der innersten Schleife herauszuholen. Da es sich um einen integrierten Shop handelt, war ich daran interessiert, jedes Mal eine Listeninstanz mit dem Befehl BUILD_LIST zu generieren.

Recommended Posts

Python-Anfänger Zundokokiyoshi
Anfänger ABC154 (Python)
Python-Anfänger-Memo (9.2-10)
Python-Anfänger-Memo (9.1)
Python-Anfängernotizen
[Anfänger] Python-Array
Anfänger ABC155 (Python)
[Anfänger] Python-Funktionen
Anfänger ABC157 (Python)
Zundokokiyoshi mit Python
PyQ ~ Python Anfänger ~
Python-Anfänger-Memo (2)
Zundokokiyoshi (Generator) in Python
Python-Anfänger startet Discord Bot
Zundokokiyoshi mit Python / Rubin / Lua
Web Scraping Anfänger mit Python
Atcoder Anfänger Wettbewerb 152 Kiroku (Python)
[Python-Anfänger] Teilen Sie eine Liste (5 Zeilen).
[Anfänger] Extrahieren Sie Zeichenketten mit Python
Python-Anfänger versucht 100 Sprachverarbeitung klopfen 2015 (05 ~ 09)
AtCoder Anfängerwettbewerb 174 C Problem (Python)
Python-Anfänger versucht 100 Sprachverarbeitung klopfen 2015 (00 ~ 04)
Kafka Python
Python-Grundlagen ⑤
Eine Notiz, in der ein Python-Anfänger stecken blieb
Python-Zusammenfassung
Python-Einschlussnotation
Python-Technik
Python studieren
Python-Memorandum
Python FlowFishMaster
Python-Dienst
Python-Tipps
Python-Funktion ①
Python-Grundlagen
Python-Memo
Anfänger Kmeans
Ufo-> Python (3)
Python-Einschlussnotation
Installieren Sie Python
Python Singleton
Python-Grundlagen ④
Python-Memorandum 2
Python-Memo
[Anfänger] Leicht verständliches Python-Web-Scraping mit Google Colaboratory
Python Jinja2
Python-Inkrement
atCoder 173 Python
[Python] -Funktion
Python-Installation
Python installieren 3.4.3.
Versuchen Sie Python
Python-Memo
Python iterativ
Python-Algorithmus
Python2 + word2vec
[Python-Anfänger] Verbinden Sie zwei Listen abwechselnd (5 Zeilen).
Python-Anfänger Atcoder memo @ Keyence 2020, ABC-Problem
[Python] -Variablen