Seite 2 von 3
Re: Type error python sicherung bricht ab
Verfasst: Montag 25. Juli 2011, 15:09
von bluelagoon
du kannst aber in php sagen
feldname [1] un das bis kein wert mehr vorhanden is un mit php kannste auch prüfen ob der array-key existiert mit python find ich dazu nichts.
sparrow in dem sinne ist es ein array aber wenn ich angeb
excludes= excludes.list[1]
dann muss ich aber nid nur ein element in diese Variable packen sondern eben alle.
Re: Type error python sicherung bricht ab
Verfasst: Montag 25. Juli 2011, 15:20
von sparrow
bluelagoon hat geschrieben:du kannst aber in php sagen
feldname [1] un das bis kein wert mehr vorhanden is un mit php kannste auch prüfen ob der array-key existiert mit python find ich dazu nichts.
Code: Alles auswählen
>>> m = ['ich', 'du', 'er', 'sie', 'es']
>>> m.pop()
'es'
>>> m.pop()
'sie'
>>> m
['ich', 'du', 'er']
>>> m.pop(1)
'du'
>>> m
['ich', 'er']
Code: Alles auswählen
>>> d = {'alpha' : 'ich bin der alpha Eintrag :)'}
>>> d['beta'] = 'und ich der beta'
>>> d
{'alpha': 'ich bin der alpha Eintrag :)', 'beta': 'und ich der beta'}
>>> 'beta' in d
True
>>> d['beta']
'und ich der beta'
>>> 'omega' in d
False
>>> d.get('omega')
>>> d.get('omega', '404')
'404'
>>> d.get('alpha')
'ich bin der alpha Eintrag :)'
>>> d.get('alpha', '404')
'ich bin der alpha Eintrag :)'
Aber das wird dir bei deinem Problem nicht weiter helfen. Obwohl das auch Grundlagen sind, egal in welcher Sprache.
bluelagoon hat geschrieben:dann muss ich aber nid nur ein element in diese Variable packen sondern eben alle.
Ich wiederhole mich, aber:
schreib doch mal hinter jede Zeile was sie machen soll... es nützt doch nichts wenn du das da hin schreibst und nicht weißt was passiert?
Warum tritt denn bei dem php-Code von BlackJack der selbe Fehler auf?
Re: Type error python sicherung bricht ab
Verfasst: Montag 25. Juli 2011, 15:35
von BlackJack
Man kann in Python auch ``feldname[1]`` schreiben. Wenn `feldname` an eine Liste gebunden ist, dann bekommt man damit das zweite Element. Die Zählung fängt bei 0 an. Wie bei PHP-Arrays in der Regel auch, wenn man sie als Arrays/Listen verwendet. Was Du damit meinst das man das solange machen kann bis kein Wert mehr vorhanden ist, verstehe ich nicht!? Bei dem Zugriff bekommt man immer das zweite Element, egal wie oft man den macht. Da gibt es auch keinen Unterschied zwischen PHP-Arrays und Python-Listen.
Der zweite Absatz von Deinem Beitrag ist mir total unverständlich!? Was willst Du uns damit sagen? Ist das Python? Wo kommt das Objekt mit dem `list`-Attribut her? Welchen Typ hat das?
Wo genau Unterscheiden sich Python-Listen von PHP-Arrays in Deinem Anwendungsfall? Wie gesagt — und *gezeigt* — funktioniert Dein Python-Code in PHP auch nicht mit Arrays. Was würdest Du denn in PHP mit Arrays anders machen? Und jetzt bitte nicht wirr und konfus in halben Sätzen beschreiben, sondern bitte funktionierenden PHP-Quelltext zeigen!
Re: Type error python sicherung bricht ab
Verfasst: Montag 25. Juli 2011, 18:26
von bluelagoon
ich hab mir dein Beispiel angesehn aber wenn ich re.split ne klammer drum mach dann wirft es erst recht Fehler aus.
ich kann dadurch nicht einzeln die zeilen ansprechen.
blackjack man kann array auf existenz überprüfen in php
Code: Alles auswählen
<?php
$var=array(variablea => array(6=> 7 , 8=> 9, a=> bc));
echo $var["variablea"][6]
echo $var["variablea"][8]
echo $var["variablea"][a]
oder
Code: Alles auswählen
<?php
$abc=array(1=> "ich" , "bin", "auch", "noch", "da ");
print_r($abc);
die Funktion array_key_exists schaut halt ob der array existiert und etwas vorhanden is sprich du kannst nach nen wert im array suchen und auf existenz . Das gibt halt true oder false zurück hab die Funktion in php auch schon verwendet
falls du mir nicht glaubst
http://www.php.net/manual/de/function.a ... exists.php
Re: Type error python sicherung bricht ab
Verfasst: Montag 25. Juli 2011, 19:29
von sparrow
Wo ist denn das Problem?
Code: Alles auswählen
>>> variablea = { 6: 7, 8: 9, 'a': 'bc' }
>>> print variablea[6]
7
>>> print variablea[8]
9
>>> print variablea['a']
bc
>>> abc = ["ich", "bin", "auch", "noch", "da"]
>>> print abc
['ich', 'bin', 'auch', 'noch', 'da']
Das verhält sich doch identisch?
Wenn du das nicht drin hast solltest du dir das Tutorial noch einmal anschauen.
Re: Type error python sicherung bricht ab
Verfasst: Montag 25. Juli 2011, 19:33
von CM
Schön und gut, nur, bluelagoon, was hat das mit dem eigentlichen Problem zu tun? Wenn Du die Grundlagen hättest, wüßtest Du im Übrigen, daß dicts auch eine analoge .has_key()-Funktion haben.
Der Punkt ist weiterhin, daß Du nicht ausführst, was Dir geraten wird. Hinzu kommt inzwischen mangelnder Unterhaltungswert Deiner Posts in wahrlich miesem Schriftdeutsch.

Re: Type error python sicherung bricht ab
Verfasst: Montag 25. Juli 2011, 19:43
von BlackJack
@bluelagoon: *Um* `re.split()` eine Klammer? Wer spricht denn davon? Auf ein Element einer Liste, oder auch eines Wörterbuchs, greift man zu, in dem man *nach* dem Ausdruck, der das Objekt ergibt eckige Klammern mit dem Index oder Schlüssel schreibt. Aber auch *das* ist in PHP genau so. Mit dem kleinen Unterschied das in PHP syntaktisch kein beliebiger Ausdruck vor dem eckigen Klammern stehen darf, sondern ein Name. Darum war auch das `$tmp` in meinem Beispiel zwingend erforderlich.
Ich glaube Dir das man in PHP ein (PHP-)Array auf Existenz von Schlüsseln prüfen kann. Habe auch nie das Gegenteil behauptet. Bei einem Wörterbuch kann man das in Python auch machen. Wie das geht steht in der Dokumentation, in jedem guten Tutorial, und nur ein paar Beiträge weiter oben hat sparrow das gezeigt. Bei Listen existieren in Python grundsätzlich alle "Schlüssel" von 0 bis ``len(liste) - 1``. Wenn Du wissen willst ob ein Index existiert, musst Du halt nur schauen ob der noch innerhalb der Listenlänge liegt. Aber so etwas braucht man nur sehr selten. Sowohl bei Listen als auch bei Wörterbüchern wird ausserdem eine entsprechende Ausnahme ausgelöst, wenn man versucht auf einen Index oder einen Schlüssel zuzugreifen, der nicht existiert. Auch das sind alles Python-Grundlagen, die *Du* lernen musst, wenn Du in Python programmieren willst. Das ist aber auch alles dokumentiert.
Und es hat alles nichts mit dem Problem zu tun welches Du mit dem Einlesen von den Exclude-Daten hast. Falls Du da anderer Meinung bist, zeig doch einfach mal die PHP-Lösung für das Problem. Bin gespannt wo Du da den Test auf Existenz von Schlüsseln in einem PHP-Array verwendest.
Re: Type error python sicherung bricht ab
Verfasst: Montag 25. Juli 2011, 22:02
von bluelagoon
mein problem bleibt die Liste, dadurch das ich nur den letzten Wert habe ignoriert er alle anderen Werte in der Liste.
Beispiel: element bekommt A, B, C nun weise ich die Liste an excludes also
excludes= element
ausgabe: C
wo sind die anderen Variablen?
und mit der Sache komm ich grad einfach nicht zurecht.
ich kann mit print excludes alles ausgeben was in der liste steckt Aber nicht excludes die Liste zuweisen.
dadurch funktioniert die Sicherung auch nicht richtig, er springt in den Teil error process is already running.
dürfte nicht passieren wenn er alle Werte in excludes trägt.
Zu späteren Verlauf MUSS also excludes die Werte verlieren sonst würde er ja nicht mitsichern oder willst du sagen ich liege falsch?
Re: Type error python sicherung bricht ab
Verfasst: Montag 25. Juli 2011, 22:20
von BlackJack
@bluelagoon: Es werden nicht alle anderen Werte in der Liste ignoriert, weil Du nie eine Liste mit mehr als einem Wert hast.
Dein Beispiel ist schon falsch weil „element bekommt A, B, C” und „nun weise ich die Liste an excludes” fehlerhaft ist. Wo kommt da plötzlich die Liste her? Überprüfe doch bitte endlich mal Deine Vermutungen an einem kleinen Beispiel oder interaktiv in einer Python-Shell. Oder vielleicht auch an einem kleinen PHP-Programm, denn dort ist das nicht anders. Ich glaube das habe ich schon mal erwähnt…
Welche anderen "Variablen"? Was ist für Dich eine Variable? Versuch das mal in den Begriffen "Name" und "Wert" zu formulieren.
`excludes` verliert keine Werte. Das siehst Du in der Tat falsch. Insbesondere verstehe ich nicht wie Du darauf kommst, das erst im späteren Verlauf Werte verloren gehen, wenn *direkt* nach dem Einlesen von einer Ini-Datei mit mehreren Exclude-Zeilen nur eine davon in der Liste steht, die an `excludes` gebunden ist.
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 05:43
von bluelagoon
is doch egal ich weis an welcher funktion es liegt in meinem Script und die konstruiere ich einfach um.
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 06:16
von snafu
Zeig doch mal bitte deinen geänderten Code, nachdem du meinen Hinweis auf die Umstellung der Liste angewendet hattest. Ich vermute, dass du noch immer etwas anderes als die eigentlich zu verwendende Liste neu bindest.
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 07:24
von bluelagoon
Code: Alles auswählen
#lies jede Zeile aus der Datei
for exclude_line in exclude_file.readlines():
#wenn zeile mit excludes steht dann
if exclude_line.lower().strip().startswith("excludes"):
excludesList = [] #erstelle liste splitte excludes
exclude = re.split('^excludes\s*=\s*',exclude_line.lower().strip())[1]
excludesList.append(exclude) #häng excludes an
excludes=excludesList #übergib liste an variable
print excludes #gib werte aus
gibt die einzelnen Pfade aus wählt trotzdem noch das letzte Element das an excludesList gehängt wird.
Erwarten:
- alle Pfade in der Liste werden nicht gesichert.
- mit Sources dasselbe.
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 07:26
von sparrow
@bluelagoon: snafu hat dir bereits erklärt was das Problem ist, aber es ist noch immer im Quelltext zu finden.
Los komm, gibb dir einen Ruck und poste den Code nochmal, und schreib einfach hinter jede Zeile was sie tun soll.
Es reicht der Codeausschnitt von oben, nur mit dem Kommentar pro Zeile.
Edit nach kommentierun des Codes:
Supi, und jetzt überleg mal wie oft (und wann)
#erstelle liste ausgeführt wird und was der Befehl genau macht.
Als Tipp:
Code: Alles auswählen
>>> excludesList = []
>>> excludesList.append("Adam")
>>> excludesList.append("Eva")
>>> excludesList
['Adam', 'Eva']
>>> excludesList = []
>>> excludesList.append("Hermann")
>>> excludesList
['Hermann']
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 07:34
von snafu
Ich frage mich gerade wirklich, woher deine Vorstellungen von Programmierung kommen. Sowas habe ich echt noch nie gesehen... ^^
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 07:35
von bluelagoon
Code: Alles auswählen
excludesList = []
for exclude_line in exclude_file.readlines():
if exclude_line.lower().strip().startswith("excludes"):
exclude = re.split('^excludes\s*=\s*',exclude_line.lower().strip())[1]
excludesList.append(exclude)
excludes=excludesList
print excludes
funktioniert!
ich sollte wohl öfters Codes kommentieren.
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 07:43
von snafu
Wiederhole doch mal mit deinen eigenen Worten, was so eine
`for`-Schleife genau tut.
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 07:53
von snafu
bluelagoon hat geschrieben:funktioniert!
ich sollte wohl öfters Codes kommentieren.
Fein.
Passiert mir übrigens auch sehr oft, dass mir Code genau dann klar wird, wenn ich versuche, mein Problem beim Verfassen eines Beitrags zu beschreiben oder dass ich die Lösung finde, kurz nachdem ich einen Beitrag abgeschickt habe. Denn genau in diesem Moment zwingt man sich automatisch dazu, ein Problem so zu beschreiben, dass ein Außenstehender es verstehen kann. Der nützliche Nebeneffekt ist dabei dann, dass man es aufgrund seiner eigenen Beschreibung endlich selbst versteht oder eben weiß, was man ändern muss, damit es funktioniert. Analog dazu verhält es sich bei mir oft beim Verfassen von Docstrings, weshalb ich es für jemanden selbst ebenso wichtig halte, seine Programme ausführlich zu dokumentieren, wie auch für Dritte, die den Code lesen und verstehen sollen.
Wenn dir also Kommentare tatsächlich zum besseren Verständnis von Programmabläufen helfen, dann mach das in Zukunft doch einfach immer so, wenn du mal wieder an einer Stelle nicht weiter kommst.

Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 08:14
von sparrow
bluelagoon hat geschrieben:ich sollte wohl öfters Codes kommentieren.
Das ist allgemein eine gute Idee. Wobei zu viele Kommentare das ganze auch wieder unübersichtlich machen. Da muss aber jeder selber seinen Mittelweg finden.
Selbst Leute die viel Programmieren nehmen sich ab und an einen Bleistift und ein Stück Papier und zeichnen einen Programmablaufplan (
http://de.wikipedia.org/wiki/Programmablaufplan ) um sich zu verdeutlichen was genau eigentlich passiert. Das ist kein Hexenwerk und eine immense Hilfe. Eins musst du dir klar machen: der Syntax von Programmiersprachen unterscheidet sich, aber der Ablauf ist immer gleich. Es gibt da ganz, ganz wenige Ausnahmen. Eine If-Bedingung unterscheidet sich vielleicht in der Schreibweise zwischen Python, Perl, C und Java, die Funktion (also das was passiert) ist jedoch weitgehenst identisch. Das gilt ebenso für Schleifen. Du musst dann nur noch den Programmfluss in die Sprache "übersetzen". Wichtig ist jedoch, dass du den Fluss verstehst.
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 08:21
von EyDu
sparrow hat geschrieben:Eins musst du dir klar machen: der Syntax von Programmiersprachen unterscheidet sich, aber der Ablauf ist immer gleich. Es gibt da ganz, ganz wenige Ausnahmen. Eine If-Bedingung unterscheidet sich vielleicht in der Schreibweise zwischen Python, Perl, C und Java, die Funktion (also das was passiert) ist jedoch weitgehenst identisch. Das gilt ebenso für Schleifen. Du musst dann nur noch den Programmfluss in die Sprache "übersetzen". Wichtig ist jedoch, dass du den Fluss verstehst.
Wenn du das glaubst, dann solltest du dir mal nicht-imperative Sprachen wie Haskell oder Prolog anschauen. Nur um mal zwei bekannte Vertreter deklarativer Programmierung zu nennen.
Sebastian
Re: Type error python sicherung bricht ab
Verfasst: Dienstag 26. Juli 2011, 08:27
von sparrow
EyDu hat geschrieben:Wenn du das glaubst, dann solltest du dir mal nicht-imperative Sprachen wie Haskell oder Prolog anschauen. Nur um mal zwei bekannte Vertreter deklarativer Programmierung zu nennen.
Bitte ließ meinen Post nochmal, ich habe von wenigen Ausnahmen gesprochen.
Haare spalten hilft doch nicht
