diese hausaufgabe besteht aus zwei teilen, einen teil hab ich eh bereits erledigt! und dies ohne "Privatlehrer", der mir es vorkaut! Ich kann gerne den ersten funktionieren teil posten!!__deets__ hat geschrieben:Was ich meine ist, das dir hier niemand die absoluten Grundlagen beibiegen wird, die du offensichtlich hoppalahopp verpennt hast. Setz dich hin & arbeite ein oder zwei oder 10 Tutorials durch. Ich tauch auch nicht für dein Seepferdchen. Das musst schon du selbst machen.
Wenn du Code zeigst der erkennen lasset, dass du dich damit ernsthaft beschäftigtigst, oder konkrete Fehler hast, die du nicht verstehst, kann man dir helfen. Einfach mal alles als Privatlehrer vorkauen ist nicht.
Funktionen mit return HILFE!!!!
Schleifen solltet ihr gelernt haben, oder? Sonst hat die Aufgabenstellung ja keinen Sinn[1]. Schau im Zweifelsfall noch mal im Tutorial unter "for Statements". Den Code um auf den ersten und letzten Buchstaben eines Strings zuzugreifen habe ich dir hier in diesem Thread auch schon gezeigt. Vergleiche macht man mit ==.
Deine Aufgabe:
1. neue Liste erstellen
2. jedes Element der als Parameter übergebenen Liste verarbeiten
3. je Element prüfen ob Bedingung erfüllt wird, wenn ja, dann an neue Liste anhängen
4. neue Liste aus der Funktion zurückgeben
[1] Anmerkung: In diesem Kontext. Natürlich könnte man auch mit map und filter etwas basteln.
Deine Aufgabe:
1. neue Liste erstellen
2. jedes Element der als Parameter übergebenen Liste verarbeiten
3. je Element prüfen ob Bedingung erfüllt wird, wenn ja, dann an neue Liste anhängen
4. neue Liste aus der Funktion zurückgeben
[1] Anmerkung: In diesem Kontext. Natürlich könnte man auch mit map und filter etwas basteln.
@/me: da Strings reingehen, und String rausgehen ist `map` nicht notwendig.
Bei funktionaler Programmierung ist man dann sowieso schon über das definieren von Funktionen hinaus:
Bei funktionaler Programmierung ist man dann sowieso schon über das definieren von Funktionen hinaus:
Code: Alles auswählen
filtere_namen_mit_anfangs_und_endbuchstaben_gleich = partial(filter, re.compile('^(.).*\\1$').match)
Ich würde eine Lösung in Prolog vorschlagen (ist sowieso viel schöner als reguläre Ausdrücke ):
[codebox=prolog file=Unbenannt.txt]
first_letter_equals_last_letter(Name) :-
string_codes(Name, [C | Cs]),
append(_, [C], [C | Cs]).
search_begin_end(Names, MatchingNames) :-
include(first_letter_equals_last_letter, Names, MatchingNames).
main :-
Names = ["BABS", "DORIS", "LEA", "ALEXA", "ELENE"],
search_begin_end(Names, MatchingNames),
writeq(MatchingNames), nl.
[/code]
Ausführen mit
[codebox=text file=Unbenannt.txt]
» swipl -g main -t halt main.pl
["ALEXA","ELENE"]
[/code]
[codebox=prolog file=Unbenannt.txt]
first_letter_equals_last_letter(Name) :-
string_codes(Name, [C | Cs]),
append(_, [C], [C | Cs]).
search_begin_end(Names, MatchingNames) :-
include(first_letter_equals_last_letter, Names, MatchingNames).
main :-
Names = ["BABS", "DORIS", "LEA", "ALEXA", "ELENE"],
search_begin_end(Names, MatchingNames),
writeq(MatchingNames), nl.
[/code]
Ausführen mit
[codebox=text file=Unbenannt.txt]
» swipl -g main -t halt main.pl
["ALEXA","ELENE"]
[/code]
@narpfel: in Python finde ich es aber schöner (und entspricht vermutlich dem, was /me ohne map und filter im Sinn gehabt haben mag):
Code: Alles auswählen
(p for p in q if p[0] == p[-1])
@kbr: Wenn schon golfen, dann richtig (in Pyth):
[codebox=text file=Unbenannt.txt]
fqhTeTQ
[/code]
⇒
[codebox=text file=Unbenannt.txt]
» echo '["BABS", "DORIS", "LEA", "ALEXA", "ELENE"]' | python -m pyth -c 'fqhTeTQ'
['ALEXA', 'ELENE']
[/code]
[codebox=text file=Unbenannt.txt]
fqhTeTQ
[/code]
⇒
[codebox=text file=Unbenannt.txt]
» echo '["BABS", "DORIS", "LEA", "ALEXA", "ELENE"]' | python -m pyth -c 'fqhTeTQ'
['ALEXA', 'ELENE']
[/code]