0

Ich versuche, für die Erstellung eines DFA Python-Code zu schreiben. Ich plane, die Schildkrötenbibliothek zu benutzen. Gibt es Alternativen? Ich kann die Knoten zeichnen, bin mir aber nicht sicher, wie ich die Zustandsnamen in die Kreise einfügen soll. Kann jemand bitte leite mich? Unten ist mein Code soweit. Danke!Einfügen von Text innerhalb eines Kreises in Python

import turtle 

def draw_node(some_turtle): 
    myTurtle.circle(50) 
    turtle.getscreen().__root.mainloop() 


def draw_design(): 

    window = turtle.Screen() 
    window.bgcolor("teal") 

    myTurtle = turtle.Turtle() 
    myTurtle.color("white") 
    myTurtle.shape("turtle") 
    myTurtle.speed(5) 
    myTurtle.pensize(4) 

    draw_node(myTurtle) 

    window.exitonclick() 

draw_design() 

Antwort

0

Das Problem mit Ihrem Code scheint mit der Schildkröte Bibliothek insbesondere und Python-Programmierung eine Kombination aus Mangel an Vertrautheit zu sein in Allgemeines. Ich würde nicht unbedingt sagen, dass die Schildkröte Bibliothek ist die beste Wahl für das, was Sie tun möchten, aber es kann das tun, was Ihr Programm zu erreichen, strebt:

from turtle import Turtle, Screen 

RADIUS = 50 

FONT_SIZE = 18 

FONT = ("Arial", FONT_SIZE, "normal") 

def draw_node(turtle, text, x, y): 
    turtle.up() 
    turtle.goto(x, y - RADIUS) 
    turtle.down() 
    turtle.circle(RADIUS) 
    turtle.up() 
    turtle.goto(x, y - FONT_SIZE // 2) 
    turtle.write(text, align="center", font=FONT) 

def draw_design(turtle): 

    turtle.color("white") 
    turtle.pensize(4) 

    draw_node(turtle, "S0", -100, 100) 

    draw_node(turtle, "S1", 100, 100) 

screen = Screen() 
screen.bgcolor("blue") 

yertle = Turtle(shape="turtle") 

draw_design(yertle) 

yertle.home() 

screen.exitonclick() 

OUTPUT

enter image description here

+0

Ja Du hast Recht, dass ich neu bei Python bin. Vielen Dank für Ihren Code. Darf ich bitte wissen, wenn Schildkröte nicht die beste Wahl ist, was sind die Alternativen? –

+0

@Chica_Programmador, eine Alternative ist die Verwendung des Tkinter-Moduls, auf dem das Turtle-Modul aufgebaut ist. Es ist komplizierter als Turtle, aber genau wie Turtle können Sie eine Reihe von Funktionen erstellen, die sich auf Ihre Problemdomäne beziehen und dann mit denen in Ihrem Code arbeiten. – cdlane

0

kann ich Schildkröte Modul in meiner Umgebung nicht installieren, aber ich denke, dass Problem in variable Bereiche ist.

myTurtle Variable ist nicht im globalen Bereich definiert, so myTurtle von draw_node unterscheidet dann myTurtle von draw_design.

In Andererseits funktionieren draw_node korrekt mit myTurtle als Eingabeparameter aufgerufen wird, aber in der Tat gibt es keine Verwendung dieser Eingabe innerhalb draw_node.

Versuchen Sie, das zu ändern:

def draw_node(some_turtle): 
    myTurtle.circle(50) 
    turtle.getscreen().__root.mainloop() 

zu, dass:

def draw_node(some_turtle): 
    some_turtle.circle(50) 
    turtle.getscreen().__root.mainloop() 
Verwandte Themen