2016-04-25 20 views
0

Ich versuche, einen zufälligen Wortgenerator (meist unsinnige Wörter) zu erstellen.Warum funktioniert mein Wortgenerator nicht?

Der Punkt ist, für sie zu:

  • Generieren Sie eine bestimmte Anzahl von Strings bestimmter Längen
  • Sie einen Vokal enthalten muss, und wenn es kein Vokal ist, es durchläuft wieder.

Aber aus irgendeinem Grund nach gebe ich beide x und y das Programm tut nichts.

Ich versuchte print(attempt) nach attempt = random.choice(sUpper) Zugabe, und es gerade erzeugt:

H 
G 
E 

usw.

Hier ist das Programm in Frage:

import random 
sUpper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
sLower = 'abcdefghijklmnopqrstuvwxyz' 
vowels = 'aeiouAEIOU' 
class Word: 
    def __init__(self, length): 
     self.length = length 
    def build(self): 
      while 1: 
       attempt = random.choice(sUpper) 
       a = 0 
       while a <= (self.length-1): 
        attempt += random.choice(sLower) 
        a += 1 
       for i in vowels: 
        if i in attempt: 
         word = attempt 
         break 
      return word 
while 1: 
    x = int(input('Length: ')) 
    y = int(input('Number: ')) 
    z = Word(x) 
    w = 1 
    while w <= y: 
     print(z.build()) 
     w += 1 
+0

Es gibt nichts, was die 'while 1' in' build' beenden könnte. – user2357112

+0

Was ist mit der Pause? – Mathime

+0

Ja, Ihre 'Pause' springt nur aus der for-Schleife heraus. – Keiwan

Antwort

3

Sie Ihre Build-Funktion ändern können dies:

def build(self): 
    running = True 
    while running: 
     attempt = random.choice(sUpper) 
     a = 0 
     while a <= (self.length-1): 
      attempt += random.choice(sLower) 
      a += 1 
     for i in vowels: 
      if i in attempt: 
       word = attempt 
       running = False 
       break 
    return word 
+0

Ich habe das implementiert, aber es funktioniert immer noch nicht. – Mathime

+0

Es lief ohne Probleme für mich. Gibt es überhaupt keine Ausgabe? – Keiwan

+0

Oh, warte, deine For-Schleife ist außerhalb deiner While-Schleife. Ich habe den Einzug geändert und es hat funktioniert. Vielen Dank! – Mathime

Verwandte Themen