Problem Python Programmierung Online Tutorial

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.
Antworten
nightlife_
User
Beiträge: 5
Registriert: Sonntag 16. August 2015, 01:21

Bild

Hey Leute, die Aufgabe war Das Programm so zu schreiben, dass es alle Links aus irgend einem String raus schreibt.
Das hab ich geschafft, jedoch wird "None" immer mitgeschrieben.
Arbeite schon Stunden daran, bekomme das nicht weg.
Bitte um Hilfe.. Bin ganz neu dabei.

http://fs2.directupload.net/images/150816/pnk6taui.png
BlackJack

@nightlife_: Was gibt denn das ``print`` in Zeile 23 aus? ;-)
nightlife_
User
Beiträge: 5
Registriert: Sonntag 16. August 2015, 01:21

BlackJack hat geschrieben:@nightlife_: Was gibt denn das ``print`` in Zeile 23 aus? ;-)
Es printed doch das Verfahren welches ich mit def print_all_links(site) beschreibe. richtig?
Aber wenn es keine Links mehr gibt und die Lösung oben durch def linkfounder(site) -> None ergibt, sollte unten ja einfach das brake einsetzen, da ja kein url mehr da ist, und nicht noch None printen. Oder? Wo liegt mein Überlegungsfehler im Code?... :/
BlackJack

@nightlife_: Was ist denn „das Verfahren“? Es gibt den Rückgabewert der `print_all_links()`-Funktion aus, die hat aber keinen expliziten Rückgabewert, also wird `None` zurückgegeben, und dann vom ``print`` halt auch ausgegeben.

Du möchtest eventuell auch mal das Englische Wort „founder“ nachschlagen. Ich habe so eine Ahnung dass das nicht die Bedeutung hat, die Dir vorschwebt. ;-)
nightlife_
User
Beiträge: 5
Registriert: Sonntag 16. August 2015, 01:21

BlackJack hat geschrieben:@nightlife_: Was ist denn „das Verfahren“? Es gibt den Rückgabewert der `print_all_links()`-Funktion aus, die hat aber keinen expliziten Rückgabewert, also wird `None` zurückgegeben, und dann vom ``print`` halt auch ausgegeben.

Du möchtest eventuell auch mal das Englische Wort „founder“ nachschlagen. Ich habe so eine Ahnung dass das nicht die Bedeutung hat, die Dir vorschwebt. ;-)
ufff.. XD Wie man sieht habe ich nur denn Prozess so benannt, ist doch egal was ich da hinschreibe^^, kann auch lol oderso hinschreiben...
Weiss denn keiner etwas?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Du willst scheinbar Programmieren lernen. Der wichtigere Punkt als eine konkrete Sprache zu lernen ist _korrekt_ zu arbeiten. Das heisst u.a. die richtigen Werkzeuge und eben auch Namen zu benutzen.
Eines solltest du nicht vergessen: Es gibt für jeden Code mindestens zwei Leser. Dich, wenn du ihn schreibst, und dich, wenn du ihn spaeter nochmal liest.

Woher das `None` kommt hat dir BlackJack doch schon gesagt.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Schau dir alle print Anweisungen an und überlege welches davon das None ausgibt :P

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
nightlife_
User
Beiträge: 5
Registriert: Sonntag 16. August 2015, 01:21

jens hat geschrieben:Schau dir alle print Anweisungen an und überlege welches davon das None ausgibt :P
cofi hat geschrieben:Du willst scheinbar Programmieren lernen. Der wichtigere Punkt als eine konkrete Sprache zu lernen ist _korrekt_ zu arbeiten. Das heisst u.a. die richtigen Werkzeuge und eben auch Namen zu benutzen.
Eines solltest du nicht vergessen: Es gibt für jeden Code mindestens zwei Leser. Dich, wenn du ihn schreibst, und dich, wenn du ihn spaeter nochmal liest.

Woher das `None` kommt hat dir BlackJack doch schon gesagt.
Vielen Dank für eure Antworten Leute. Mir ist schon klar wo das None geprinted wird, aber kann mir jemand sagen, wie ich es raus bekomme?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

_Warum_ da ein `None` hat Blackjack dir _auch_ gesagt. Das laesst doch nur eine Loesung zu: Du entfernst das `print`.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

nightlife_ hat geschrieben:Vielen Dank für eure Antworten Leute. Mir ist schon klar wo das None geprinted wird, aber kann mir jemand sagen, wie ich es raus bekomme?
Ändere Zeile 23 von

Code: Alles auswählen

print print_all_links('<a href="twitter.ch"  <a href="pokemon.com" ')
zu

Code: Alles auswählen

print_all_links('<a href="twitter.ch"  <a href="pokemon.com" ')
a fool with a tool is still a fool, www.magben.de, YouTube
nightlife_
User
Beiträge: 5
Registriert: Sonntag 16. August 2015, 01:21

MagBen hat geschrieben:
nightlife_ hat geschrieben:Vielen Dank für eure Antworten Leute. Mir ist schon klar wo das None geprinted wird, aber kann mir jemand sagen, wie ich es raus bekomme?
Ändere Zeile 23 von

Code: Alles auswählen

print print_all_links('<a href="twitter.ch"  <a href="pokemon.com" ')
zu

Code: Alles auswählen

print_all_links('<a href="twitter.ch"  <a href="pokemon.com" ')
cofi hat geschrieben:_Warum_ da ein `None` hat Blackjack dir _auch_ gesagt. Das laesst doch nur eine Loesung zu: Du entfernst das `print`.
Vielen Dank Leute, ich habs nun verstanden! Ich muss ja nur den Prozess ausführen. Och mann! :( haha
Was geht genau vor wenn ich das print vornedran habe, wenn das None geprinten wird?
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Jede Funktion hat in Python einen Rückgabewert. Wenn die Funktion nicht mit `return` explizit einen Wert zurückgibt, ist dieser `None`. Deine Funktion gibt also `None` zurück und du gibst das `None` mit `print` aus.
the more they change the more they stay the same
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

... und um's noch rund zu machen: "founder" heißt auf deutsch "Gründer", darum ist das im gegebenen Kontext ein schlechter Name für die Funktion. Besser wäre "link_finder" oder "find_link" :-)

Gruß, noisefloor
Antworten