Seite 1 von 1

Diagram zeichnen

Verfasst: Donnerstag 20. Juni 2013, 19:46
von evd
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]="*"
^^

Re: Diagram zeichnen

Verfasst: Donnerstag 20. Juni 2013, 19:57
von Sirius3
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.

Re: Diagram zeichnen

Verfasst: Donnerstag 20. Juni 2013, 20:07
von evd
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

Re: Diagram zeichnen

Verfasst: Donnerstag 20. Juni 2013, 20:41
von Sirius3
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.

Re: Diagram zeichnen

Verfasst: Donnerstag 20. Juni 2013, 21:04
von evd
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

Re: Diagram zeichnen

Verfasst: Donnerstag 20. Juni 2013, 21:07
von Sirius3
»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.