Diagram zeichnen

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
evd
User
Beiträge: 34
Registriert: Donnerstag 20. Juni 2013, 19:19

Hallo zusammen.

ich habe ein kleines Problem, welches vileicht doch nicht so klein ist wie ich bis jetzt dachte.
Ich will, oder soll ein Programm zeichnen, welches ein diagram auf den Bildschirm schreibt.
nun habe ich ein kleines Problem mit den Feldern (wie ihr gleich sehen werdet)
würde mich über eure hilfe freuen.

## python 3.0##

Code: Alles auswählen

B=[]
bb=0
while bb == 0:
    abfrage = input ("Wollen sie die x Standart werte Benutzen? ja/nein")
    if abfrage == "nein":
        xa=int(input ("xa"))
        xe=int(input ("xe"))
        xs=int(input ("xs"))
    else:
        xs=1
        xa=-3
        xe=3
    g = input ("Ihre Funkton")
    x=xa
    ymin = eval (g)
    ymax = eval (g)
    for x in range (xa,xe,xs):
        y = eval (g)
        if y < ymin:
            ymin=y
        if y> ymax:
            ymax=y
    xg=int(80)
    yg=int(24)
    xm=xg/(xe-xa)
    ym=yg/(ymax-ymin)
    for x in range (xa,xe,xs):
        y=eval(g)
        B[y*ym,x*xm]="*"
    s=""
    for y in range (1,yg):
        print (B)
    nochmal = input("wollen sie eine neue Funktion pfüfen? ja/nein")
    if nochmal == "ja":
        xwert = input ("wollen sie die gleichen x werte benutzen? ja/nein")
        if xwert == "nein":
            xa=int(input ("xa"))
            xe=int(input ("xe"))
            xs=int(input ("xs"))
        funktion = input ("wollen sie eine neue Funtion eingeben? ja/nein")
        if funktion == "ja":
            g = input ("Ihre Funkton")
    else:
        bb = 1
print ("auf wieder sehen")
Beschriftung und co, das werde ich noch mit der zeit machen ^^
aber primer geht es mir um

Code: Alles auswählen

B[x*xm,y*ym]="*"
^^
Zuletzt geändert von Anonymous am Freitag 21. Juni 2013, 06:40, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codetags gesetzt.
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo evd,

was ist Dein Problem? Wenn es einen Fehler gibt, schreibt Python normalerweise einen Traceback mit Exception-Text. Das verrät Dir und uns, wo der Fehler liegt und was der Fehler ist.
evd
User
Beiträge: 34
Registriert: Donnerstag 20. Juni 2013, 19:19

ja... da ich nicht sicher bin wie man die Felder deklariert, war ich mir auch nicht sicher welche Fehlermeldung ich schreiben sollte ^^

so wie es oben steht ist es

Code: Alles auswählen

Traceback (most recent call last):
  File "/home/???/test.py", line 29, in <module>
    B[x*xm,y*ym]="*"
TypeError: list indices must be integers, not tuple
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

Und die Fehlermeldung sagt Dir, dass man Listen nur mit einer Zahl ansprechen kann und nicht mit einem Zahlentupel. Mehrdimensionale Listen schreibt man in Python als Liste die wiederum Listen enthält.
evd
User
Beiträge: 34
Registriert: Donnerstag 20. Juni 2013, 19:19

also quasi so?

Code: Alles auswählen

for x in range (xa,xe,xs):
        y=eval(g)
        B.append([x*xm])
        B[x*xm].append([y*ym])
        B[x*xm][y*ym]="*"
oder wie kann ich mir das vorstellen?

dann bekomme ich aber den Error.:

Code: Alles auswählen

list index out of range
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

»List index out of range« heißt jetzt nun wieder, dass die Liste weniger Elemente hat als der Index mit dem Du auf die Liste zugreifen willst. In Deinem Fall mußt Du also erst die Listen mit entsprechend vielen Elementen initialisieren bevor Du sie benutzen kannst.
Antworten