hallo,
kann mir wer bei dieser aufgabe helfen?
#schreibt eine Funktion sucheAnfangEnde mit einer Namensliste als Parameter.
#Diese Methode soll eine Liste zurückgeben mit sämtlichen Namen, deren Anfangsbuchstabe derselbe ist wie der Endbuchstabe.
lg
Funktionen mit return HILFE!!!!
ich verstehe irgendwie nicht so ganz wie ich den ersten und den letzen buchstaben mit den Elementen aus der liste vergleichen kann. könntest du mir vielleicht bei dieser aufgabe helfen?Sirius3 hat geschrieben:@Bebo123: was hast Du denn schon versucht? Wo konkret hat Du ein Problem?
Natürlich. Das lässt sich als Einzeiler schreiben.Bebo123 hat geschrieben:kann mir wer bei dieser aufgabe helfen?
Es klingt allerdings so, als sei das eine Hausaufgabe, so dass dir vermutlich manche Sprachkonstrukte noch gar nicht bekannt sind. Welchen Code hast du denn schon? Zumindest das def-Statement mit der Funktionsdefinition sollte ja ohne jegliche Probleme möglich sein. Wenn nicht ... uiiii ... dann solltest du noch mal in ein geeignetes Tutorial schauen.
Entweder hast du die Aufgabe nicht wirklich verstanden oder du gibst sie gerade extrem schräg wieder. Präzision ist wichtig beim Schreiben von Software. Es geht darum, jedes Element der Liste (vermutlich ein String) daraufhin zu überprüfen, ob das erste und letzte Zeichen des Elements identisch sind.Bebo123 hat geschrieben:ich verstehe irgendwie nicht so ganz wie ich den ersten und den letzen buchstaben mit den Elementen aus der liste vergleichen kann.
Mal so als Denkanstoß:
Code: Alles auswählen
>>> name = "Monty"
>>> name[0]
'M'
>>> name[-1]
'y'
Namenliste=["BABS","DORIS","LEA","ALEXA","ELENE"]/me hat geschrieben:Natürlich. Das lässt sich als Einzeiler schreiben.Bebo123 hat geschrieben:kann mir wer bei dieser aufgabe helfen?
Es klingt allerdings so, als sei das eine Hausaufgabe, so dass dir vermutlich manche Sprachkonstrukte noch gar nicht bekannt sind. Welchen Code hast du denn schon? Zumindest das def-Statement mit der Funktionsdefinition sollte ja ohne jegliche Probleme möglich sein. Wenn nicht ... uiiii ... dann solltest du noch mal in ein geeignetes Tutorial schauen.
def sucheAnfangEnde(Namenliste):
das hab ich bis jetzt!
naja, ich denke ich müsste mir jetzt das erste element/namen aus der liste herausnehmen und dann den ersten und letzten Buchstaben überprüfen ob sie identisch sind/me hat geschrieben:Wie würdest du denn von Hand (bzw. im Kopf) bei der Aufgabe weiter vorgehen?
Aber wie setze ich das jetzt um? HIIILFE!!!!Bebo123 hat geschrieben:naja, ich denke ich müsste mir jetzt das erste element/namen aus der liste herausnehmen und dann den ersten und letzten Buchstaben überprüfen ob sie identisch sind/me hat geschrieben:Wie würdest du denn von Hand (bzw. im Kopf) bei der Aufgabe weiter vorgehen?
Hast du im Python Tutorial schon mal die Kapitel über Strings gelesen? https://docs.python.org/3/tutorial/intr ... ml#strings
Da steht sprichwörtlich wie man auf den ersten und letzten Buchstaben zugreift.
Da steht sprichwörtlich wie man auf den ersten und letzten Buchstaben zugreift.
mhh okay danke, aber wie mache ich denn dann weiter?__deets__ hat geschrieben:Hast du im Python Tutorial schon mal die Kapitel über Strings gelesen? https://docs.python.org/3/tutorial/intr ... ml#strings
Da steht sprichwörtlich wie man auf den ersten und letzten Buchstaben zugreift.
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.
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.
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.
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])