前提・実現したいこと
昨日複数処理をボタン一つでやる方法についてお尋ねしたところ、shiracamus様より回答を頂きます。 感謝いたしております。 その回答に基づき自分のやりたいように多少変更を致しました。 これからやりたいことは現在俳句が一句だけですので、俳句を続けて五句く作りたいのです。 宜しくお願い致します。
発生している問題・エラーメッセージ
codeは殆ど全くshiracamusさんのcodeをお借りしております。 エラーは出ておりませんが、後四個続けて表示できるようにしたいのです。 for haiku in range(5)とかやるのだろうと思うのですが、うまく行きません。
該当のソースコード
使用言語はPython3.7です。 import tkinter as tk import random class Test(): KAMI = ("赤い椿1", "夕立の1", "夕立が1", "朝立や0", "荒海や0", "海に出て0") NAKA = ("雪を染めたる1", "雪がふうはり1", "春の雲あり1", "白い椿と0", "隣は何を0", "筑波に雲も0") SHIMO = ("秋の暮れ1", "落ち葉かな1", "散るもみぢ1", "落ちにけり0", "する人ぞ0", "なかりけり0") Haiku1 = '1' def __init__(self): self.root = tk.Tk() self.root.title("人工無能俳句") self.root.geometry('300x200') self.labelSpace_0 = tk.Label(self.root).pack() self.button = tk.Button(self.root, text='次の人工無能俳句', command=self.make) self.button.pack() self.labelSpace_0 = tk.Label(self.root).pack() self.labelKami = tk.Label(self.root, text="上の句") self.labelNaka = tk.Label(self.root, text="中の句") self.labelShimo = tk.Label(self.root, text="下の句") self.labelHaiku1 = tk.Label(self.root, text="Pyhon作成俳句1") self.labelHaiku2 = tk.Label(self.root, text="Pyhon作成俳句2") self.labelHaiku3 = tk.Label(self.root, text="Pyhon作成俳句3") self.labelHaiku4 = tk.Label(self.root, text="Pyhon作成俳句4") self.labelHaiku5 = tk.Label(self.root, text="Pyhon作成俳句5") #self.labelKami.pack() #self.labelNaka.pack() #self.labelShimo.pack() self.labelHaiku1.pack() self.labelHaiku2.pack() self.labelHaiku3.pack() self.labelHaiku4.pack() self.labelHaiku5.pack() self.root.mainloop() def make(self, *args): while True: kami = random.choice(self.KAMI) naka = random.choice(self.NAKA) shimo = random.choice(self.SHIMO) self.labelKami["text"] = kami self.labelNaka["text"] = naka self.labelShimo["text"] = shimo if self.is_Haiku1(kami, naka, shimo): return def is_Haiku1(self, kami, naka, shimo): Haiku1_count = sum(Haiku1 in ku for ku in (kami, naka, shimo) for Haiku1 in self.Haiku1) self.labelHaiku1["text"] = Haiku1_count self.labelSpace_0 = tk.Label(self.root).pack() if Haiku1_count == 1: Haiku1 = kami[:-1] + " " + naka[:-1] + " " + shimo[:-1] self.labelHaiku1["text"] = Haiku1 return True else: self.labelHaiku1["text"] = "季語がないか又は多すぎます。" return False Test()
試したこと
上記codeに for haiku in range(5) など試しましたが、NGでした。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/01/13 04:30