Absturz eines Python-Skriptes

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
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Nach dem try-and-error-verfahren habe ich einen Sudokufeldgenerator zu programmieren versucht, aber nachdem ich dann das dictionairy (zahl = {})
benutzt habe, gibt der Skript keine Fehler wieder, macht aber auch nichts:

Code: Alles auswählen

#!/usr/bin/env python
#<<<murph>>>
import random

#at first, we generate 9*9 digits of random
#a and c are two counters, a is the row left-right, c is the row up-down 
def digitgenerator():
    a = 1
    c = 1
    while a < 9:
        while c < 9:
            zahl[a/c] = random.randint(1,9)
        c+=1    
    a+=1

#now we have a lot of number created by random, but we have to get the digits from 1 till 9
#with every digit, so we test the row a

def linegenerator():
    za = 1
    zc = 1
    x = 1
    while za < 9:
        while zc < 9:
            while x < 9:
                if zahl[a/c] == zahl[x/zc]:
                    if zahl[a/c] < 1:
                        zahl[a/c]-=1
                    elif zahl[a/c] == 1:
                        zahl[a/c] = 9        
                
                
                   
                x +=1
            x = 0
            while x < 9:
                if zahl[a/c] == zahl[za/x]:
                    if zahl[a/c] < 1:
                        zahl[a/c]-= 1
                    elif zahl[a/c] == 1:
                        zahl[a/c] = 9 
                     
            zc +=1           
        za +=1

def ausgabe():
    za = 1
    zb = 1
Ich erwrte nur die Lösung für den Absturz, möchte mir selbst meine Zähne daran ausbeißen! (Oder generiert er das Feld, nur ich bin zu ungeduldig?)
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Das Programm stuerzt nicht ab sondern es tut einfach... nichts! :P

Du definierst jede Menge Funktionen, aber aufrufen tust du sie nicht. Ausserdem wird nirgendwo irgendwas ausgegeben, selbst wenn deine ganzen Funktionen ausgefuehrt wuerden, wuerdest du es gar nicht mitbekommen...

Ausserdem tut jede Funktion was fuer sich, aber sie koennen nicht miteinander kommunizieren. Keine Uebergabewerte, keine Rueckgabewerte.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Unabhängig davon kann das Programm in der Form nicht funktionieren. Was soll zahl[a/c] machen? Überleg mal, was a/c macht, und dann, was zahl[a/c] dementsprechend macht. Das Programm kann also in der Form definitiv keine Sudokus lösen.

Unabhängig davon: "Ich erwarte nur die Lösung für den Absturz" ist ein ziemlich falscher Weg um Interesse zu wecken Sich mit deinem Programm auseinanderzusetzen. Aber die Diskussion hatten wir ja in ähnlicher Form schon mal... ;-)
--- Heiko.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

OK, dass mit dem Erwarten war unglücklich formuliert.
Ich habe leider vergessen, dass a/c auch eine Bedeutung hat, will eigentlich diese als Koordinaten übergeben. Such als ich jetzt die Funktionen aufgerufen habe, hat es nicht funktioniert, aber erstmal werde ich eine einfache Datenbank anlegen, weil ich schließlich frei Daten in Verbvindung bringen möchte (die beiden Koordinaten und den Wert.
BlackJack

Eine Datenbank!?

Du kannst in Dictionaries übrigens Tupel als Schlüssel verwenden:

Code: Alles auswählen

In [2]:a = dict()

In [3]:a[(42, 23)] = 4711

In [4]:a
Out[4]:{(42, 23): 4711}
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

BlackJack hat geschrieben:Eine Datenbank!?

Du kannst in Dictionaries übrigens Tupel als Schlüssel verwenden:

Code: Alles auswählen

In [2]:a = dict()

In [3]:a[(42, 23)] = 4711

In [4]:a
Out[4]:{(42, 23): 4711}
Geht auch noch einfacher:

Code: Alles auswählen

>>> d = {('a', 'b'): 'c'}
>>> d['a', 'b']
'c'
TUFKAB – the user formerly known as blackbird
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Ach, die Klammern waren es!
Ich hatte immer einen Parameter zu viel, was durchaus verständlich war.
Aber wenn ich zwei Parameter so zusammenschließen kann...Damit werde ich das dann einmal versuchen.
Antworten