Seite 1 von 2

Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:10
von Bebo123
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 :)

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:14
von Sirius3
@Bebo123: was hast Du denn schon versucht? Wo konkret hat Du ein Problem?

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:18
von Bebo123
Sirius3 hat geschrieben:@Bebo123: was hast Du denn schon versucht? Wo konkret hat Du ein Problem?
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? ;)

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:19
von /me
Bebo123 hat geschrieben:kann mir wer bei dieser aufgabe helfen?
Natürlich. Das lässt sich als Einzeiler schreiben.

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.

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:22
von Sirius3
@Bebo123: Du sollst ja auch jedes Element der Liste für sich testen, also ob ein String mit dem selben Namen beginnt wie endet. Wie ermittelt man den ersten und letzten Buchstaben eines Strings?

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:23
von /me
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.
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.

Mal so als Denkanstoß:

Code: Alles auswählen

>>> name = "Monty"
>>> name[0]
'M'
>>> name[-1]
'y'

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:25
von Bebo123
/me hat geschrieben:
Bebo123 hat geschrieben:kann mir wer bei dieser aufgabe helfen?
Natürlich. Das lässt sich als Einzeiler schreiben.

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.
Namenliste=["BABS","DORIS","LEA","ALEXA","ELENE"]
def sucheAnfangEnde(Namenliste):

das hab ich bis jetzt!

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:29
von /me
Wie würdest du denn von Hand (bzw. im Kopf) bei der Aufgabe weiter vorgehen?

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:32
von Bebo123
/me hat geschrieben:Wie würdest du denn von Hand (bzw. im Kopf) bei der Aufgabe weiter vorgehen?
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

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:40
von Bebo123
Bebo123 hat geschrieben:
/me hat geschrieben:Wie würdest du denn von Hand (bzw. im Kopf) bei der Aufgabe weiter vorgehen?
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
Aber wie setze ich das jetzt um? HIIILFE!!!!

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:49
von __deets__
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.

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:55
von Bebo123
__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.
mhh okay danke, aber wie mache ich denn dann weiter?

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 21:58
von __deets__
Damit in deiner Funktion über die Elemente deiner Liste zu iterieren. Das habt ihr bestimmt auch schon gelernt..

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 22:02
von Bebo123
__deets__ hat geschrieben:Damit in deiner Funktion über die Elemente deiner Liste zu iterieren. Das habt ihr bestimmt auch schon gelernt..
ups, da hab ich wohl was in der schule verschlafen... wie meinst du das? :D

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 22:07
von __deets__
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.

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 22:10
von Bebo123
__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.
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!! :)

Re: Funktionen mit return HILFE!!!!

Verfasst: Sonntag 15. April 2018, 22:37
von /me
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.

Re: Funktionen mit return HILFE!!!!

Verfasst: Montag 16. April 2018, 06:30
von Sirius3
@/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:

Code: Alles auswählen

filtere_namen_mit_anfangs_und_endbuchstaben_gleich = partial(filter, re.compile('^(.).*\\1$').match)

Re: Funktionen mit return HILFE!!!!

Verfasst: Montag 16. April 2018, 08:48
von narpfel
Ich würde eine Lösung in Prolog vorschlagen (ist sowieso viel schöner als reguläre Ausdrücke :mrgreen:):
[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]

Re: Funktionen mit return HILFE!!!!

Verfasst: Montag 16. April 2018, 09:06
von kbr
@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])