tkinter canvas...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

Code: Alles auswählen

liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
variabel = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
vari = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
varis = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

liste1 =[]
liste2 =[]
liste3 =[]
liste4 =[]
liste5 =[]
liste6 =[]


from tkinter import*
tk = Tk()
import turtle
#t = turtle.Pen()
import time
canvas = Canvas(tk, width=500, height=500)
canvas.pack()
import random


for i in range(30):
    while True:
        random.shuffle(liste)
        random.shuffle(variabel)
        random.shuffle(vari)
        random.shuffle(varis)
        random.choice(liste)
        random.choice(variabel)
        random.choice(vari)
        random.choice(varis)
        liste1.append(liste[5])
        liste2.append(variabel[5])
        liste3.append(vari[5])
        liste4.append(varis[5])
        print(liste1)
        print(liste2)
        print(liste3)
        print(liste4)
        canvas.create_rectangle(liste1, liste2, liste3, liste4)
        liste1 =[]
        liste2 =[]
        liste3 =[]
        liste4 =[]
        liste5 =[]
        liste6 =[]
        break
wie können die Quadrate an verschiedenen Koordinaten auf der Leinwand spornen?
Sirius3
User
Beiträge: 17746
Registriert: Sonntag 21. Oktober 2012, 17:20

@jan.b: `liste`, `variabel`, `vari` und `varis` sind Namen, die schlechter nicht sein könnten. liste1 bis 4 wird an einer Stelle definiert, wo sie gar nicht gebraucht werden, liste5 und 6 werden gar nicht benutzt.
Daher gilt die Regel, Variablen erst dann einzuführen wenn sie auch wirklich gebraucht werden.
Importe sollten immer ganz oben stehen, *-Importe vermeiden. `turtle` und `time` werden nicht verwendet. Eine while-Schleife, die immer exakt einmal durchlaufen wird, ist überflüssig, eine ganze Liste zu mischen, um dann ein Element draus zu entnehmen, ist Verschwendung. Das Ergebnis von choice wird nicht verwendet. Deine Art und Weise, Listen mit einem Element zu erzeugen ist sehr unübersichtlich. `create_rectangle` arbeitet eigentlich mit Zahlen und nicht mit Listen.

Aufgeräumt sähe das so aus:

Code: Alles auswählen

import random
import tkinter as tk

x1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
y1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
x2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
y2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

root = tk.Tk()
canvas = tk.Canvas(root, width=500, height=500)
canvas.pack()

for i in range(30):
    canvas.create_rectangle(random.choice(x1), random.choice(y1),
        random.choice(x2), random.choice(y2))
Zur Frage: ich versteh sie nicht.
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

wenn ich soviel zeit hätte wie du, dann würde ich das auch machen. :D
__deets__
User
Beiträge: 14533
Registriert: Mittwoch 14. Oktober 2015, 14:29

Deinen miesen Code hinzuschreiben hat garantiert mehr Zeit gekostet....
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

aber ich weiß es nicht besser. und er geilt sich daran auf.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
aber ich weiß es nicht besser
Also das deine Variablennamen schlecht sind, ist dir hier schon oft gesagt worden. Zumindest das hättest du ändern können...
und er geilt sich daran auf
Das du ein mieses Sozialverhalten gegenüber denen hast, die dir in ihrer Freizeit freiwillig helfen, hast du ja leider auch schon des öfteren eindrucksvoll demonstriert. Hier schon wieder. Also wenn dir mal hier im Forum keiner mehr Antworten sollte -> der Griff an die eigene Nase ist der Grund...

Gruß, noisefloor
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

:roll: er will mir ja gar nicht helfen. und er kennt den zusammenhang auch nicht. deswegen sehen manche dinge falsch aus, obwohl sie richtig sind.
__deets__
User
Beiträge: 14533
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Dinge die du gezeigt hast sind zusammenhanglos falsch. Weswegen man dich darauf hinweist. Das du dann pissig wirst wie ein verzogener 12jähriger ist dein Problem. Und reduziert die Hilfsbereitschaft.
Antworten