HILFE BEI SCHULAUFGABE

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.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

falcon1806 hat geschrieben:und bitte nicht wieder ein verweis auf das tutorial....hab wirklich nicht die zeit mir mal ein tutorial rein zu ziehen...es geht mir einfach um die logik und grundidee (wie kommt man auf sowas??)
Das Tutorial ist eine Grundvorraussetzung, der Rest ist viel Programmieren, oft dabei versagen und kritisiert werden. Dein Problem ist dass du nicht genug Zeit hast Programmieren zu lernen, dass weisst du nur noch nicht.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

HWK hat geschrieben:Bei den völlig fehlenden Grundlagen kann und wird Dir wohl keiner mehr helfen.
Daran glaube ich nicht mehr ... dafür gibt es hier zu viele mit einem ausgeprägten Helfersyndrom. :D
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Pah, dass werden wir ja erstmal noch sehen :twisted:



Bild
Benutzeravatar
b.esser-wisser
User
Beiträge: 272
Registriert: Freitag 20. Februar 2009, 14:21
Wohnort: Bundeshauptstadt B.

@Masaru der popcorn-Smily is mal chic :lol:

Aber wenn der OP selber sagt, dass erdas Tut. nicht liest, ist dieser Thread tot - auch wenn ich gerne wüßte, wie stark sich die Ansätze ("von Hand", "set()s", "re") in der Laufzeit unterscheiden - aber ich bin zu faul zu messen ;)

mfg, Jörg
Wir haben schon 10% vom 21. Jahrhundert hinter uns!
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Alle meine smileys sind chic Bild ... ja gerade zu tres chic.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ja, falcon1806, alle `check()`-Funktionen machen das selbe.

Ich habe versucht, mit so wenig Python-Konzepten auszukommen wie möglich. Daher fand ich `s != ""` einfacher als `bool(s)`, weil expliziter. Das falcon1806 der `!=`-Operator nicht bekannt war, kann ich natürlich nicht ahnen :)

Würde `islower()` tatsächlich nur `True` liefern, wenn der String nur Kleinbuchstaben enthalten würde, wäre dies eine schicke Lösung:

Code: Alles auswählen

def check(s):
    return s and s[s[0].isupper():].islower()
Allerdings funktioniert das nicht, da `islower()` alle Nicht-Buchstaben ignoriert und daher war tatsächlich meine Wahl, die Funktion auf jeden Buchstaben einzeln anzuwenden, korrekt.

@falcon1806, einen Aufruf von `check()` habe ich auch gezeigt. Das Einbinden sollte dir daher nicht schwer fallen. Falls doch, Tutorial!

@b.esser-wisser, mit ziemlicher Sicherheit die Re-Variante, da diese nicht in Python abläuft, sondern in C (kompiliert eigentlich Python seine REs in Maschinensprache, so wie es z.B. Java und C# machen?)

Stefan
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Da wir gerade das Thema in der Schule haben: Das ganze mal mit Zuständen: http://paste.pocoo.org/show/180951/
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
/me
User
Beiträge: 3552
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

falcon1806 hat geschrieben:und dann noch sowas wie:
if True---> wort zulässig
else--->syntaxfehler

wegen der zeile.......was bedeutet sie wortwörtlich?
s ungleich "" <----- wofür stehen die anführungszeichen?
Die Erklärung ist ein wenig ausführlicher und sprengt ein wenig den Rahmen des Forums, deshalb steht sie jetzt hier und hier.
Benutzeravatar
b.esser-wisser
User
Beiträge: 272
Registriert: Freitag 20. Februar 2009, 14:21
Wohnort: Bundeshauptstadt B.

@b.esser-wisser, mit ziemlicher Sicherheit die Re-Variante, da diese nicht in Python abläuft, sondern in C
Stimmt, die re Variante ist die schnellste - die set() Version scheint sich aber evtl. für lange 'Wörter' zu lohnen: sagt mein Test
- nicht wundern, falls jemand string-concatenation noch nie in Aktion gesehen hat.

mfg, Jörg
tante edit hat das mark-up gefixed
Wir haben schon 10% vom 21. Jahrhundert hinter uns!
falcon1806
User
Beiträge: 6
Registriert: Freitag 19. Februar 2010, 23:05

so..da bin ich wieder.
und ich möchte hier mal was klar stellen...

1. ich hatte ein problem und habe hier um hilfe gebeten....ich hatte auch ein lösungsansatz(meine überlegung) als quellcode angefügt

2. dann werde ich plötzlich aufgefordert, mir das tutorial rein zu ziehen.....
FRAGe: WARUM????
es stimmt schon das mir einiges an wissen fehlt, das streite ich nicht ab,aber welche grundlagen würden mir denn IN DEM ZUSAMMENHANG ZUM PROBLEM fehlen?und warum soll ich mir nochmal strings anschauen, was völlig unbegründet ist.
die datenstrukturen hab ich schon längst behandelt (auch indizierung und slicing)....

3. es war ein logikfehler in meinem quellcode enthalten, den ich nicht finden konnte und somit euch um hilfe aufgesucht habe. es lag nicht an der programmierung an sich(und die ganzen befehle), sondern es lag an der logik.ich habe alles durchdacht, trotzdem den fehler nicht gefunden.
ich wollte nur, dass jmd. den fehler in MEINEM quellcode FINDET, lösen würde ich ihn selber. ich habe um keine dokumentierten lösungen gebeten.
@sma trotzdem vielen, vielen dank für deine mühe. ich weiß es zu schätzen :D mein fertiger quellcode basiert zum teil auf deiner basis

und hier ist er.....funzt perfekt....und das mit meinen bisherigen kenntnissen...wie gesagt: ich bin der auffassung, dass es nur um die grundidee geht,wie man ein problem löst....die umsetzung an sich ist eine andere sache!

http://paste.pocoo.org/show/181265/
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo.

Du bekommst den Hinweis, weil du offensichtlich sehr grundlegende Dinge noch nicht verstanden hast. Betrachtet man zum Beispiel deinen neuen Code:
- checkeins ist nicht mehr als:

Code: Alles auswählen

def checkeins(s): return s[0] in kl
- man iteriert nicht über Indizes, dirket über Listen:

Code: Alles auswählen

for x in s:
    x in kl
- du solltest mit Parametern arbeiten und nicht mit globalen Variablen
- wenn du Code kopierst, wie in checkviel, dann machst du etwas falsch. Das musst du auf jeden Fall zusammenfassen.
- Wegen "kl" und "gr" solltest du noch einmal ins string-Modul schauen, dort sind diese nämlich vordefiniert
- Zeilen 40 bis Ende sind wieder kopiert
- Statt 0/1 solltest du False/True verwenden
- Benutze richtige Namen, nicht nur i,j,anz. In zwei Wochen weißt du nicht mehr, was die bedeuten.
- Code solltest du nicht auf Modulebene stehen haben, damit verhinderst du, dass dein Modul sinnvol importiert werden kann
- Inline-Kommentare machen den Code unübersichtilch. Statt die Kommentare hinter den Code zu setzen, schreibe das Kommentar besser in die Zeile vor dem Code
- ""in" checkt, ob ein String in einem anderen String vorkommt" ist ein überflüssiges Kommentar. Kommentare sollen abstrakter beschreiben was passiert und nicht die Befehle noch einmal in Worte packen
- Ach ja, und natürlich PEP 8

Damit kannst du deine Kenntnisse dann vielleicht ein wenig erweitern.

Sebastian
Das Leben ist wie ein Tennisball.
Benutzeravatar
/me
User
Beiträge: 3552
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

falcon1806 hat geschrieben:es stimmt schon das mir einiges an wissen fehlt, das streite ich nicht ab,aber welche grundlagen würden mir denn IN DEM ZUSAMMENHANG ZUM PROBLEM fehlen?und warum soll ich mir nochmal strings anschauen, was völlig unbegründet ist.
Du hast unter anderem gefragt was "", also zwei doppelte Anführungszeichen hintereinander bedeuten. Sich nach dieser Frage hinzustellen und zu sagen "Ich habe Strings verstanden!" halte ich für äußerst gewagt.

Viele deiner Äußerungen bzw. Codebeispiele zeigten Lücken auf, die sich durch ein Lesen und Verstehen des Tutorials beheben ließen.
falcon1806 hat geschrieben:wie gesagt: ich bin der auffassung, dass es nur um die grundidee geht,wie man ein problem löst....
Wenn aber doch die Grundidee offensichtlich schon merkwürdig ist, wie EyDu bereits an einigen Beispielen aufgezeigt hat, dann halte ich es nicht für sinnvoll, Tipps zu Reparaturarbeiten am Flickwerk zu geben, sondern weiter vorne anzufangen. Schau, mal, wenn mir jemand sagt, ihm würde dauernd die Sicherung am Schaltkasten durchhauen und er würde nun gerne von mir wissen, wie dick der Nagel sein muss mit dem er die Sicherung überbrücken könne, dann halte ich das einfach für den falschen Ansatz. Bevor ich den weiter rumfummeln lasse erkläre ich ihm dann doch lieber die Grundlagen.
info4ever
User
Beiträge: 1
Registriert: Dienstag 23. Februar 2010, 13:59

Eyy, ich glaubs ja nicht, da kommt echt son newbie an und muckt auf. das der leichteste scheiß den es auf der welt gibt !!!!!!
kann ja wohl nicht wahr sein, dass hier irgend soein eiernacken ankommt und leute belässtig mit seinen hausaufgaben, nur weil ers zu dumm im kopf ist, diese alleine zu machen !!!

ist sinnlos ihm zu antworten, is nur verlorene zeit.

p.s.: falcon1806, wir werden dich im OCEAN finden !!!! FADDDDDIIIIIII

DANKE TROTZDEM, fürs abschreiben lassen;)
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

info4ever hat geschrieben:Eyy, ich glaubs ja nicht, da kommt echt son newbie an und muckt auf. das der leichteste scheiß den es auf der welt gibt !!!!!!
kann ja wohl nicht wahr sein, dass hier irgend soein eiernacken ankommt und leute belässtig mit seinen hausaufgaben, nur weil ers zu dumm im kopf ist, diese alleine zu machen !!!

ist sinnlos ihm zu antworten, is nur verlorene zeit.

p.s.: falcon1806, wir werden dich im OCEAN finden !!!! FADDDDDIIIIIII

DANKE TROTZDEM, fürs abschreiben lassen;)
Was willst du?

@Mods den Beitrag bitte löschen, ich sehe in dem Beitrag keinen Sinn, nur Beiledigung(en)
the more they change the more they stay the same
BlackJack

@Dav1d: Einen Beitrag löschen von dem *Du* ein Vollzitat gemacht hast!? Erscheint mir eher nicht sinnvoll. ;-)
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Das Zitat hätte ich schon entfernt, bloß "info4ever" könnte auf die Idee kommen das der Beitrag nicht so toll war und ihn editieren, dann würd ich blöd dastehen :P
the more they change the more they stay the same
Antworten